תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37"

Transcript

1 תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי מיון בועות. Bubble Sort מיון מיזוג. Merge Sort מיון מנייה. Counting sort מיון ראדיקס. Radix sort מיון מהיר. Quick sort משפט האב II מבני נתונים 20 8 מבני נתונים מופשטים עצי חיפוש בינאריים Trees. BST (Binary Search עצי (Adelson-Velskii Landis AVL גרפים עצים פורשים מינימלית בגרף Tree. MST (Minimum Spanning אלגוריתם קידוד המידע (דחיסת המידע של הופמן. Human

2 חלק I בעיות מיון 1 סימון אסימפטוטי הגדרה "O" 1.1 ( Oגדול נגדיר (n f (n = O (g אם קיימים קבועים,O < n 0, c כך ש (n f (n c g לכל.n > n 0 הגדרה "Ω" 1.2 נגדיר (n f (n = Ω (g אם קיימים < n 0, c 0 כך ש: (n f (n c g לכל.n > n 0 "Θ" הגדרה 1.3 נגדיר (n, f (n = Θ (g אם (n f (n = O (g וגם (n f (n = Ω (g עבור קבועים < c 1, c 2, n 0 0 כך ש:.n 0 N עבור כל,c 1 g (n f (n c 2 g (n הגדרה o"o" 1.4 קטן.g זניח ביחס ל( n f (n כלומר, lim f (n נגדיר: (n f (n = o (g אם = 0 (n n g 2 מיון בועות Bubble Sort השיטה הפשוטה ביותר למיון מערך. Pseudo code : f o r i =1 to i = n 1 f o r j = 1 to n i do i f A[ j ] >= A[ j +1] then swap A[ j ] and [ j +1] הסבר: השיטה רצה על כל המערך, ומשווה בין כל זוג תאים. 2.1 הוכחת נכונות נוכיח באינדוקציה על k את הטענה הבאה: טענה 2.1 לאחר k איטרצות של הלולאה החיצונית, k המספרים הגדולים (כלומר התאים האחרונים במערך במערך נמצאים במקומם הנכון. נשים לב כי הוכחת הטענה מוכיחה עבור מערך שלם בגודל n, כי עבור מערך בגודל n, לאחר 1 n פעולות המערך ממוין. בסיס האינדוקציה: n. לאחר איטרציה אחת של הלולאה החיצונית, המספר הגדול ביותר מגיע למקום ה k. = 1 2

3 עבור = 1 i בלולאה הפנימית j רץ מתא 1 עד 1 n, ולכן משווה כל שני תאים סמוכים עבור המערך השלם. נניח שקיים ערך מקסימלי max באינדקס m, כאשר j, = m תתקיים החלפה בין אינדקס m לאינדקס + 1 m. מכיוון ש max הוא הערך המקסימלי במערך, כל עוד j n i תתבצע החלפה עם האיבר אחריו. אולם = 1 i, ולכן ערכו המקסימלי j הוא 1 n j = (נזכור כי 1 n הוא התא האחרון במערך. מעבר האינדוקציה: נניח נכונות הטענה עבור kונוכיח עבור + 1 k. לפי הנחת האינדוקציה, k התאים האחרונים כבר ממוינים, כי עבור האיטרציה ה k+1 של הלולאה החיצונית, האיבר ה 1+k בגודלו במערך יגיע למקומו הנכון בתנאי שהוא k].a [n עבור +1 k,i = המשתנה הפנימי רץ מ 1 ל 1 k (n (k + 1 = (n ומבצע החלפה אם צריך. כמו בשלב = 1 k, המספר המקסימלי במערך החלקי (כלומר: {[1 k A} [1] A... n] יגיע לתא האחרון במערך זה, שהוא: [1 k A.מש"ל. n] 2.2 ניתוח זמן ריצה הפעולות המתבצעות: 1. השוואת זוג תאים סמוכים. (1 Θ. 2. החלפה בין זוג תאים סמוכים. (1 Θ. 3. קידום המשתנה האיטרציה. (1 Θ. 2.3 זמן ריצה n 1 n 1 T (n = 1 + ( = (n 1 + i=1 j=1 n 1 3 (n i i=1 = m (n ( (n 1 n (n 1 = (n = n2 1 2 n 1 המשוואה לעיל אינה מתארת במדויק את תהליך המיון, מכיוון שלא בכל שלב באיטרציה מתבצע החלפה בין שני תאים. ישנם שני דיוקים אפשריים: 1. לשנות את השוויון (=ל"קטן או שווה" (. כלומר:... (n T. 2. להגדיר את המשוואה כתיאור עבור המקרה הגרוע ביותר (שהוא, כאשר המערך מסודר בסדר הפוך. משוואת זמן הריצה אינה תלויה בקבועים שבה, אלא בגודל המערך n. נניח כי "עלות" הפעולות משתנה: 3

4 n 1 n 1 T (n = z + (x + y + z =... = (x + y + z i=1 j=1 n (n 1 2 = 1. השוואת זוג תאים סמוכים. (x Θ. 2. החלפה בין זוג תאים סמוכים. (y Θ. 3. קידום המשתנה האיטרציה. (z Θ. (x + y + z n 2 2 אזי פיתוח המשוואה ייראה כך: (x + y + z n 2 התלות הריבועית ב n אינו משתנה. בצורה רקורסיבית 2.4 BubbleSort BubbleSort A [1,..., n] if ( n =1 return (1 else Bubble A [1,..., n] BubbleSort A [1,...,n -1] מתודת העזר: Bubble A [1,..., k] for j =1 to k -1 if A[j] > A[j +1] and A[j +1] זמן ריצה רקורסיה n. על קלט בגודל BubbleSort זמן ריצה של T (n k. על קלט בגודל Bubble זמן ריצה של S (n משוואה רקורסיבית עבור > 1 n T (n, T (n = T (n 1 + S (n T (1 = Θ (1 S (k = Θ (k 4

5 טענה T (n = Θ ( n לכל 1,k.c 1 k S (k c 2 k הוכחה: קיימים קבועים c 1 < c 2 חיוביים כך שלכל > 1 :n T (n 1 + c 1 n T (n T (n 1 + c 2 n T (1 = δ נסמן: d}.m = max {c 2, d}, m = min {c 1, נוכיח כי לכל > 1 nמתקיים:,m n 2 T (n M n 2 ולכן: 2.T (n = Θ ( n את המשוואה: m n 2 T (n M n 2 נוכיח באינדוקציה על :n בסיס: T (1 = d max (c 2, d = M מעבר: נכתוב את הטענה לn, ונוכיח עבור + 1 n: T (n + 1 T (n + c 2 (n + 1 M n 2 + M (n + 1 = M ( n 2 + n + 1 < M ( n 2 + 2n + 1 = M (n T (n T (n 1 + c 2 n. T (2 T (1 + c 2 2 T (n T (1 c 2 ( n = c 2 ( n (n = Θ ( n 2 נחסיר טורים: 3 מיון מיזוג Merge Sort MergeSort A[ 1,..., n ] i f n=1 return 1 e l s e MergeSort (A[ 1,..., n / 2 ] MergeSort (A[ ( n / 2 + 1,..., n ] Merge (A [ 1,..., n / 2 ], A[ ( n / 2 + 1,..., n, A[ 1,..., n ] 5

6 Merge (B [ 1,..., k ], C [ 1,...,m], A[ 1,..., k+m] A_pointer = 1 B_pointer=1 C_pointer=1 while ( A_pointer<k+m+1 w h i l e (B[ B_pointer]<C[ C_pointer ] OR C_pointer=m+1 AND B_pointer<k+1 A[ A_pointer]=B[ B_pointer ] A_pointer++ B_pointer++ w h i l e (C[ C_pointer]<B[ B_pointer ] OR B_pointer=k+1 AND C_pointer<m+1 A[ A_pointer]=C[ C_pointer ] A_pointer++ C_pointer++ זמן ריצה 3.1 Merge נניח ששתי המערכים ([m,1]b,...,[k C,1],.. ממוינים, נשווה בין שתי תאים במערך, ונכניס את הערך הקטן מבינהם במערך.A זמן ריצה: m.θ (k ניתוח אלגוריתם נכונות :Merge בכל השוואה בין Bל Cמכניסים איבר ל Aבאופן ממוין. n 2 ממוינים, ואז ממזגים אותם. :MergeSort מניחים שמערכיו באורך T (n = 2 T ( n 2 + Θ (n זמן ריצה m. זמן ריצה של מיון ממוזג על קלט באורך T (m.merge זמן הריצה של Θ (n T (1 = Θ (1 הפונקציה T חסומה, כי היא חסומה מלמעלה ומלמטה על ידי קבוע. טענה logn 3.1 T (n = Θ (n 6

7 2T ( n 2 + d 1 n T (n 2T הוכחה: באופן מפורש, המשוואה הרקורסיבית היא: ( n + d 2 n 2 d 1 T (1 d 2 נוכיח באינדוקציה כי T (n = Θ (n log (n d 1 nlog 2 n + d 1 n T (n d 2 n log 2 n + d 2 n.t (n d 2 n log 2 (n + d 2 n נוכיח באינדוקציה על kכי,n = 2 k מקרה בסיס: = 0 1 k.t (1 d 2 d 2 1 log 2 (1 + d 2 1,n = מעבר: נניח נכונות עבור.2 k = n :k ונוכיח עבור + 1 k.2 k+1 = 2n : T (2n 2T (n + d 2 (2n 2 (d 2 n log 2 (n + d 2 n + d 2 (2n = 2 d 2 n log 2 (2n + d 2 (2n הרעיון של פתרון בעיה אלגוריתמית על ידי חלוקתה לבעיות קטנות יותר ומיזוג הפתרונות החלקים לפתרון הבעיה הגדולה נקרא, n b כאשר הפרד ומשול Conquer.(Divide & דוגמא חשובה לרעיון זה נלמד בקורס לאלגוריתמים אלגוריתמים דינמיים. הכללה של הבעיה הרקורסיבית: נתונה בעיה בגודל n ואלגוריתם הפותר אותה על ידי חלוקתה ל a בעיות בגודל מחיר המיזוג של הפתרונות החלקיים לפתרון הבעיה המקורית הוא (k, n,b (k Θ, ( n הינם פרמטרים של הבעיה. ( n T (n = a T + Θ ( n k b הבעיה הרקורסיבית: T (1 = Θ (1 T (n =? T (n = C n k + C a ( ( n k ( b + C a 2 n k ( b + C a r 1 n k 2 b = C r 1 nk 1 + a + a ar 1 = b k (b 2 ( k (b r 1 k C n k 1 + a + ( a 2 ( b k b a r 1 k b k 3.3 שיטת האיטרציה ניתוח איטרטיבי עבור BubbleSort נוסחת נסיגה: T (n = T (n 1 + Θ (n T (n = T (n 1 + c n T (n 1 = T (n 2 + c (n 1 7

8 איור 1: עץ רקורסיה נציב את משוואה 3.2 במשוואה 3.1: T (n = T (n 2 + c (n 1 + c n עבור מקרה כללי: i 1 T (n = T (n i + (n k k=0 n 2 (n 1 (n + 2 T (n = T (1 + (n k d + c 2 k=0 T (n = Θ ( n 2 עבור מקרה אחרון: זמן הריצה הוא: ניתוח איטרטיבי עבור MergeSort T (n = 2 T ( n 2 + c n נוסחת נסיגה: ( n T = 2 T 2 8 ( n 4 + c n 2

9 ( ( n T (n = 2 2 T 4 + c n + c n 2 2T 2 T (n = 2 2 T ( n cn על ידי הצבת משוואה 3.4 במשוואה 3.3, נקבל: ( n + c n + c n 4 T (n = 2 k T ( n 2 k + k cn עבור k פעמים, נקבל: T (n = 2 log2n T (1 + log 2 n cn n d + cn log 2 n T (n = Θ (n log (n.t ( n 2 k = T ( n n עבור = T (1 :n = 2 k :T (1 = const. = d,k = log 2 n n = 2 k זמן הריצה הוא: 4 מיון מנייה Counting sort ידע מוקדם: כל איבר במערך הוא מספר שלם בטווח {k,...,1}. הרעיון: ˆ אין צורך להשוות איברים בעלי ערך דומה. ˆ לכל j, נספור את מספר האיברים הקטנים מ j. COUNTING_SORT(A,B, n, k i n i t i a l i z e C[ k ] //O( k f o r i = 1 to n //O(n C[ A[ i ] ]++ f o r j = 2 to k //O( k C[ j ] = C[ j ]+C[ j 1] f o r j = n down to 1 //O(n B[ C[ A[ j ] ] ] = A[ j ] C[ A[ j ] ] זמן ריצה: k.θ (n + 9

10 4.1 הוכחת נכונות יהי A מערך בגודל n, אשר כל מספר בו הוא מספר טבעי בין 1 ל k. נראה כי האלגוריתם מחזיר את B ממוין. טענה 4.1 לאחר הלולאה הראשונה, לכל {k C [x] x,,1},... מכיל את מספר המופעים של x ב A. הוכחה: בלולאה הראשונה אנו עוברים על כל איברי המערך, ומקדמים את C באינדקס המתאים לאיבר ב A. טענה 4.2 לאחר הלולאה השניה, לכל {k C [x] x,,1},... מכיל את מספר המופעים של כל האיברים y עם y. x הוכחה: נוכיח באינדוקציה על j. טענה: בשלב ה j בלולאה השניה, [j] C מכיל את מספר המופעים של כל האיברים l עם l. j בסיס: עבור = 1 j הטענה הכונה באופן ריק. צעד: נניח כי הטענה נכונה ל 1 j. נשים לב כי על פי האלגוריתם, C[j] C. [j] = C j] [1 + מכיוון שעל פי הנחת האינדוקציה [1 j] C מכיל את מספר המופעים של כל האיברים l עם 1 j l, אזי כעת, משהוספנו את C[j] ל [j] C מתקיים ש [ j ] C מכיל את כל האיברים l עם l j כנדרש. מסקנה 4.3 לאחר הלולאה השניה, לכל {k C [x] x,,1},... מכיל את האינדקס הפנוי האחרון של x ב B. טענה 4.4 בשלב ה i של הלולאה השלישית, האיבר ה i n במערך הושם במקומו המתאים ב B. הוכחה: נשים לב כי מספיק להראות שבשלב ה i מתקיים שלכל {k C [x] x,,i},... מכיל את האינדקס הפנוי האחרון של x ב B, שכן אז על פי האלגוריתם, בשלב ה i, האיבר שב [ i A[n יושם במקומו. נוכיח באינדוקציה על i. טענה: בשלב ה i מתקיים שלכל {k x,1},... מתקיים אחד מהשניים: ב B. x מכיל את האינדקס הפנוי האחרון של C [x] האלגוריתם לא יגש יותר ל [ x ] C. בסיס: עבור = 1 i, המערך B ריק ולכן כל המקומות פנויים. מכיוון שלר שינינו את [x], C ממה שהסקנו קודם נסיק ש [ A[n אכן יושם במקומו. צעד: מהנחת האינדוקציה בשלב ה 1 i לכל {k C [x] x,,1},... מכיל את האינדקס הפנוי האחרון של x ב B, ולכן נוכל לשים את [i y = A[n במקומו המתאים. נשים לב, שלאחר ההשמה האלגוריתם מוריד את ערכו של [y] C ב 1. אם כעת [y] C מכיל מיקום חוקי של y, אזי בהכרח הו המקום הפנוי האחרון שלו. אחרת, הם הוא מכיל מיקום שאינו חוקי, אזי מבניית C אנו יודעים שזהו המיקום האחרון של 1 y, אך משמעות הדבר היא שעברנו ב A על כל ה y ים (שכן מספר ה y ים הוא בדיוק ההפרש בין [y] C ל [1 y] C, ולכן האלגוריתם לא יגש יותר אל.C[y] לכן טענת האינדוקציה מתקיימת. מסקנה 4.5 מכיוון שהטענה נכונה עבור, i = n נקבל שלאחר n הרצות של הלולאה, המערך כולו ממויין. 10

11 5 מיון ראדיקס Radix sort אליה. ידע מוקדם: כל איבר הוא מספר שלם בעל, לכל היותר, k ספרות. ולכל מספר הספרה הימנית יותר משמעותית מהספרה משמאל RADIX_SORT(A, k f o r i = 1 to k // from l e a s t s i g n i f i c a n t d i g i t B = COUNTING_SORT(A on d i g i t i A = B זמן ריצה: ((r k O. k n + מספר הספרות. r בסיס הספרות, טווח של כל ספרה. n מספר האיברים. 5.1 נכונות טענה 5.1 בכל שלב i בלולאה של האלגוריתם, המספרים ממוינים עד לספרה ה 1 i כולל. כלומר, לכל j נסמן.A[j] = a j k,..., aj 1 נגדיר מערך A עבורו לכל j מתקיים.A [j] = a j i 1,..., aj 1 הטענה טוענת כי אחרי השלב ה i באלגוריתם, A יהיה ממוין. הוכחה: נוכיח באינדוקציה על i, כלומר שלכל i n 1 הטענה נכונה. בסיס: עבור = 1 i הטענה מתקיימת על סמך הנכונות של.CountingSort צעד: נניח כי הטענה מתקיימת עבור 1 i, ונוכיח אותה עבור i. יהי a, b שני מספרים במערך, ונניח בה"כ (בלי הגדרת כלליות כי.a i,..., a 1 b i,..., b 1 בכדי לעמוד בהנחת האינדוקציה, עלינו להראות כי לאחר השלב ה i, a ימוקם במעדך לפני b. על פי האלגוריתם, בשלב ה i אנו ממינים את המערך לפי הספרה ה i. מכיוון ש a i,..., a 1 b i,..., b 1 ישנם שני מקרים אפשריים: b אכן ימוקם לפני a בעזרתו אנו ממיינים בכל שלב, לאחר השלב ה i, (אשר CountingSort על פי נכונות a. i < b i 1. במערך. 2. i a. i = b מכיוון שאנו ממינים בשלב זה לפי הספרה ה i, עקרונית, אין הבטחה על מיקומם היחסי של a ו b. עם זאת, מכיוון ש CountingSort הינו אלגוריתם מיון יציב, מובטח לנו כי הסדר הפנימי ישמר, כלומר שאם לפני כן a מוקם לפני,b אזי גם כעת הוא ימוקם לפני.b מכיוון ש, a i = b i ו,a i, a i 1,..., a 1 b i, b i 1,..., b 1 נקבל ש.a i 1,..., a 1 b i 1,..., b 1 לכן, מהנחת האינדוקציה נקבל שבשלב ה 1 i המספרים היו ממויינים במערך עד הספרה ה 1 i, ולכן בשלב ה i, a מוקם לפני b. כנדרש. מסקנה 5.2 מכיוון שהטענה נכונה עבור, i = n נקבל שלאחר n הרצות של הלולאה, המערך כולו ממויין. 6 מיון מהיר Quick sort מיון מהיר משתמש בשיטת ההפרד ומשול, המורכבת משלושה שלבים (בדומה למיון מיזוג: 11

12 הפרד חילוק המערך r] A[p,..., לשני תת מערכים (אולי ריקים, 1] q A[p,..., ו r].a[q + 1,..., כך שכל איבר ב [1 q A[p,,... קטן או שווה ל[ A[q, כאשר A[q] קטן או שווה לכל איבר ב [ r.a[q +,1,... חישוב הציר q הוא חלק משלב זה של החילוק. משול מיון שתי התתי מערכים [1 q A[p,,... ו [ r A[q +,1,... על ידי קריאות רקורקסיביות ל QuickSort. מיזוג כולו ממויין. מכיוון ששני התתי מערכים ממוינים במקומם, אין כל צורך בעבודה נוספת בכדי למזג אותם. המערך [r... A[p, עכשיו 2 QUICK_SORT(A, p, r i f p<r q = PARTITION(A, p, r QUICK_SORT(A, p, q 1 QUICK_SORT(A, q+1, r PARTITION(A, p, r x=a[ r ] i=p 1 f o r j = p to ( r 1 i f A[ j ]<= x i = i +1 exchange A[ i ] with A[ j ] exchange A[ i +1] with A[ r ] return i +1 התנהגות QuickSort נקבעת על ידי מיקום הציר q, בכל קריאה של P. artition T (n = T (n q + T (q 1 + Θ (n המקרה הגרוע ביותר החילוק הגרוע ביותר מתקיים כאשר בכל שלב באלגוריתם P artition מחלק מערך נתון לשני תתי מערכים, אחד בעל 1 n איברים ואחד בעל 0 איברים (האיבר הנוסף הוא הציר q: ˆ כאשר הקלט כבר ממויין (בסדר עולה או יורד..T (n = T (n 1 + T (0 + Θ (n = T (n 1 + Θ (n ˆ ˆ לאחר אינדוקציה (או איטרציה: 2.T (n = Θ ( n 12

13 המקרה הטוב ביותר (בקירוב. החילוק הטוב ביותר הוא כאשר בכל שלב P artition מחלק את המערך לשני תתי מערכים שווים בגודלם רנדומליות אם נבחר את האינדקס בצורה רנדומלית, נקבל זמן ממוצע של ((n T. (n = n log נכונות נוכיח את נכונות QuickSort על סמך נכונות P. artition טענה 6.1 הפלט הוא מערך ממויין. הוכחה: נוכיח באינדוקציה על גודל הקלט מערך בגודל n. בסיס = 1 n, גודל המערך הוא 1, אזי p. = q הטענה נכונה באופן ריק. צעד נניח שהפלט של האלגוריתם עבור כל מערך שגודלו קטן מ n הוא מערך ממויין. נוכיח עבור מערך בגודל n. מכיוון שמניחים את נכונות P, artition לאחר הקריאה ל artition P הציר ממוקם במקומו הנכון במערך. כאשר כל האיברים במערך אשר גדולים מהציר, נמצאים מימינו, וכל האיברים השווים או קטנים לו נמצאים משמאלו. מכיוון ששתי הקריאות הרקורסיביות הבאות ל QuickSort הם עבור שני תתי מערכים הקטנים מ n, ניתן להסיק כי: ˆ הציר מונח במקומו הנכון במערך. ˆ התת מערך מימין לציר ממויין ומכיל רק איברים הגדולים מהציר. ˆ התת מערך משמאל לציר אף הוא ממוויין ומכיל איברים שווים או קטנים לציר. מסקנה: המערך ממויין. 7 משפט האב.Θ ( n k ואיחוד הפתרונות עולה, n b קיימת בעייה גדולה (מגודל n. מחלקים אותה ל a בעיות מאותו סוג, כל אחד בגודל ( n T (n = at + Θ ( n k b משפט 7.1 משפט האב. בהינתן נוסחת נסיגה מהצורה ( n T (n = a T + Θ ( n k b.q = a.כאשר: 1 b,k 0, constants : a, ו (1 Θ.T (1 = נסמן b k.1 אם < 1.q.T (n = Θ ( n k 13

14 .2 אם = 1.q.T (n = Θ ( n k log (n.3 אם > 1.q T (n = Θ ( n log ba הוכחה: משפט האב. קבוע חיובי: T (n T (b r d 1 q d 1 q nk d 1 q brk 1. אם < 1 q, נוכיח (d הוא קבוע חיובי כלשהו, ולכן גם T ( b 0 = T (1 d d 1 q 1k נוכיח באינדוקציה על r. בסיס = 0.r נניח שמשוואה 4.3 נכונה עבור כל r, ונוכיח עבור + 1 r. ( b T (b n r+1 a T + d b (r+1k = a T (b r + d b (r+1k b T (b n a d 1 q brk + d b (r+1k עבור r T (b נציב את משוואה :4.3 הוספה לחזקה (1 + r r וחילוק ב b k לא משנה את המשוואה: = a b k d 1 q b(r+1k + d b (r+1k q = a נזכור כי הגדרנו ש b k d = q 1 q b(r+1k + d b (r+1k d גורם משותף: נוציא 1 q b(r+1k = d 1 q b(r+1k (q + (1 q = d כלומר, קיבלנו כי: q b(r+1k 1 T (n d ולכן, בהכרח: q b(r+1k 1 ( n T (n a T + Θ ( n k T (n = Θ ( n k b כנדרש. 14

15 .T (n = O ( n k log n אז:,q = a.2 צ"ל: עבור נוסחת נסיגה מהצורה Θ(nk,T (n = at ( n b + כאשר = 1 k b.t (1 d וש,T (n at ( n b נניח ש,n = b r ו + dn k ( b T (b r r at + d (b r k b T (b r d (b r k log b (b r + d (b r k T ( b 0 = T (1 d d (b 0 k logb ( b 0 + d (b 0 k = d logb 1 + d k T ( b 0 d d k אזי: נוכיח באינדוקציה עבור כל r, כי: מקרה בסיס, עבור = 0 r: = 0 1,log ולכן: הראנו נכונות עבור מקרה בסיס, נניח נכונות עבור כל r ונוכיח נכונות עבור + 1 r. על פי הנחת התרגיל, עבור 1+r n: = b ( b r+1 T (n at + d b k(r+1 = at (b r + d b k(r+1 b ( נציב את הנחת האינדוקציה k T (b r d (b r k log b (b r + d (b r T ( b r+1 ( a d (b r k log b (b r + d (b r k + d b k(r+1 T ( b r+1 a d (b r k log b (b r + a d (b r k + d b k(r+1. a אזי: b k T ( b r+1 d a b k bk(r+1 log b (b r + d a b k bk(r+1 + d b k(r+1 k(r+1,a b k r = a b והנחנו ש: = 1 b k T ( b r+1 d b k(r+1 log b (b r + d b k(r+1 + d b k(r+1.log b b r + log b b = log b (b r b = log b ( b r+1 ו,log b b = 1 T ( b r+1 d b k(r+1 (log b (b r d b k(r+1 T ( b r+1 d b k(r+1 (log b (b r + log b b + d b k(r+1 T ( b r+1 d b k(r+1 (log b ( b r+1 + d b k(r+1 15

16 הוכחנו את הנחת האינדוקציה עבור + 1,r לכן T (b r d (b r k log b (b r + d (b r k נכון עבור כל.r הוכחנו כי.T (n d (n k log b (n + d n k מכיוון ש d n k זניח ביחס ל (n,d n k log b כלומר: = k d n n.o ( d n k log b אזי: T (n d (n k log b (n T (n = O ( n k log n T (n = Θ ( n log ba ( : d q 1.3 אם > 1,q נוכיח: נרצה להוכיח שעבור קבוע חיובי כלשהו T (n = T (n d q 1 q nlog ba d q 1 q nlog ba d q 1 nk a T ( n במשוואת הנסיגה את המשוואה הקודמת נקבל: b מכיוון שאם נציב עבור T (b r d q 1 nk + T ( b 0 = T (1 d d q 1 nk T (n = d q 1 q (br logba d q 1 (br k d q 1 q (1log ba d q 1 (1k d q 1 q nlog ba עבור,n = b r נוכיח עבור כל :r נוכיח באינדוקציה על r. עבור מקרה בסיס = 0 r: = d q 1 q d q 1 ( : d q 1 נוציא גורם משותף = d q 1 (q 1 = d q 1 q 1 = d d = d המקרה בסיס מתקיים. נניח שמשוואה 4.5 נכונה עבור כל r, ונוכיח עבור + 1 r: T ( b r+1 ( b r+1 a T + d (b r+1 k b : br+1 b = b r T ( b r+1 a T (b r + d (b r+1 k 16

17 נציב עבור r T (b את משוואה :4.5 T ( b r+1 ( d a q 1 q (br logba d q 1 (br k + d (b r+1 k = a = b log ba ( d q 1 q (br logba d a q 1 (br k d (b r+1 k ( d q 1 q (br logba q b k,q = a לכן: b k d q 1 (br k d (b r+1 k a = q b k ו,a = b log ba ba(r+1,b k (b r k = b k(r+1,b log ba (b r logba = b log לכן: = d ( q d q 1 q blog ba(r+1 q 1 bk(r+1 d b k(r+1 = d q 1 q blog ba(r+1 d q 1 bk(r+1 (q (q 1 = d q 1 q blog ba(r+1 d q 1 bk(r+1 הוכחנו עבור + 1 r, לכן הנחת האינדוקציה נכונה עבור כל r. כנדרש. חסמים על מיונים הגדרה 7.2 תמורה (או: פרמוטציה חילוף המיקום בין שני מספרים. נסמן תמורה בעזרת האות σ. התמורה היא פונקציה מ 1 עד n, שהיא חח"ע ועל: σ : {1,..., n} {1,..., n} דוגמא: (8, 2, 5, 4 (2, 4, 5, 8 התמורות מתייחסות לשינוי לפי האינדקס של המיקום, ולא לפי הערך במיקום: σ (1 = 4, σ (2 = 1, σ (3 = 3, σ (4 = 2 טענה 7.3 כל אלגוריתם מיון על קלט בגודל n חייב לבצע לפחות n פעולות. 17

18 הערה 7.4 הנחה 1: האלגוריתם לא יודע את המספרים הרשומים במערך, גישה לכל מספר (לכל תא במערך עולה לפחות פעולה אחת. הערה 7.5 הנחה 2: האלגוריתם הוא "דטרמיניסטי" (לא קוונטי ולא הסתברותי. בפרט, הוא פועל בצורה זהה לשני איברים זהים. הוכחה: נניח בשלילה שקיים אלגוריתם מיון A שממיין נכון n איברים ועושה מקסימום 1 n פעולות. בפרט, A ממיין נכון את המערך n.b = (1, 2,..., קיים אינדקס k כך שכש A פועל על B הוא לא ניגש לתא k. נניח בלי הגדרת כלליות (בה"כ:.B = (1, 2,..., k,..., n,k n מכיוון שA לא קורא את האיבר ה k. A יפעל בצורה זהה על B ועל B. בפרט יחזיר את אות התמורה ולכן ימיין נכון את B. סתירה. אלגוריתם מיון מבוסס השוואות הגדרה 7.6 אלגוריתם שמחליט על הסדר של האיברים על סמך השוואה בלבד. כל מיון מבוסס השוואות מבצע ( Ω לפחות (n Ωפעולות. (n log דוגמאות למיון מבוסס השוואות:. bubblesort, MergeSort דוגמא למיון לא מבוסס השוואות:. bucketsort את תהליך ההשוואות ניתן לתאר באמצעות עץ אפשרויות (עץ בינארי... הוכחה: נניח בשלילה כי קיים אלגוריתם מיון הממיין בלכל יותר 1 n פעולות. נתבונן בריצה של האלגוריתם על קלט מסוים [n,...,2,1] בריצה הזאת האלגוריתם לא ניגש לתא מסוים במערך. נמסמן את התא הזה ב k, זאת אומרת, שעל קלט אחר [n,... k,1 (k,2n,...,2,1] האלגוריתם חייב לבחזיר את אותו הפלט (כי הוא רואה שני קלטים זהים. אך הפלטים הנכונים במקרה שלפנינו שונים לפחות ב (k n מקומות. סתירה. הערה: ההוכחה הזאת היא "טריוויאלית" כי ברור אינטיאוטיבית שלכל אלגוריתם חייב לקראו את הקלט שלו. ולכן זמן הריצה שלו הוא לפחות כגודל הקלט. חסמים תחתונים לאלגורתמי מיון מבוססי משוואות ˆ BubbleSort Θ ( n 2. ˆ MergeSort Θ (n log (n. ˆ QuickSort Θ (n log (n. משפט 7.7 כל אלגוריתם מבוסס השוואות הממיין מערכים בגודל n, חייב לבצע לפחות ((n Ω n log השוואות. ההנחה היא שהאלגוריתם לא רואה את המספרים הרשומים במערך, ולכן הוא יכול לשאול על תוצאות ההשוואה בין כל שני מספרים במערך. כל השוואה עולה לפחות פעולה אחת. 18

19 דוגמא: מיון בועות על קלט בגודל 3. לכל אלגוריתם מיון מבוסס השוואות ניתן להתאים עץ השוואות שהוא עץ בינארי עם שורש. הפלטים של האלגוריתם מתאימים לעלים של העץ (בכל עלה עומד פלט אפשרי. זמן הריצה של האלגוריתם המחזיר פלט מסוים שווה לאורך המסלול לעלה המתאים לפלט הזה (אלגוריתם יותר מתוחכם, עם תנאי עצירה מסוים, אם המערך ממויין ייעצר לפני העלה האחרון. הערה: לעץ השוואות כזה יש לפחות (!n עלים. הוכחה: לאלגוריתם יש (!n פלטים אפשריים, שהם כל הסידורים האפשריים של המספרים: ] n x], 1, x 2,,... x ולכל פלט חייב להתאים לפחות עלה אחד של העץ..Ω (n log 2 (n = n 2 log ( n טענה 7.8 יהי T עץ בינארי עם לפחות!n. אזי קיים עלה של T שמרחקו מהשורש הוא לפחות 2 2 הטענה גוררת את המשפט: "חסם תחתון לאלגרותמי מיון מבוססי השוואות", נניח את נכונות הטענה. יהי A אלגוריתם מיון מבוסס השוואות הממיין מערכים בגודל n. יהי T עץ השוואת שללו, לפי הטענה, קיים עלה בעץ שמרחקו מהשורש הוא לפחות ((n Ω. n log 2 זאת אומרת, שכדי להגיע לפלט הזה, האלגוריתם צריך לבצע לפחות ((n Ω n log 2 פעולות. הגדרה 7.9 גובה של עץ הוא המרחק המירבי בין שורש העץ לאחד העלים שלו. למה 7.10 לעץ בינארי בגובה k, יש לכל היותר 2. k הוכחה: נניח את נכונות הלמה. בהינתן כי הלמה נכונה, נראה נכונות של הטענה. יהי T עץ בינארי עם לפחות!n עלים. נסמן ב k את גובה העץ. לפי הלמה: נוכיח את הלמה: 2 k n! k log 2 (n! ( n ( n ( (n n log 2 (n! = log 2 ( n log n log 2 = n ( n 2 2 log

20 באינדוקציה על k. בסיס: = 1 k עבור עץ בינארי בגובה 1, העץ ייראה כך: או כך קל לבדוק כי לשני העצים האלה יש לכל היותר = עלים. מעבר האינדוקציה: נניח את נכונות הטענה עבור (k,...,1 ונוכיח עבור + 1 k. =.T העצים T 1, T L, T R הם עצים בינארים עם גבהים.k 1, k L, k R מתקיים T 1 TL יהי עץ בינארי בגובה + 1 k, TR (.(k 1 = k max {k L, k R } = k חייב להיות (וגם k 1, k L, k R k TL ( העלים של T הם העלים של T 1 במקרה הראשון, T1 והם איחוד קבוצות העלים של T R, T L במקרה השני. TR לכן, לפי הנחת האינדוקציה, מספר העלים של T הוא לכל היותר 1+k 2 k1 2 k < 2 במקרה הראשון ולכל היותר = 1+k 2 2 k + 2 k 2 k L במקרה השני. + 2 k R ה"סידור סטטיסטי" של סט בעל n איברים, הוא האיבר ה i בקטנותו. 7.1 Order Statistics בעיית הסידור הסטטיסטי Problem-OSP (The Order-Statistic קלט: מערך A של n מספרים (שונים, ומספר.i כאשר i n.1 פלט: האיבר x A שבמדויק גדול יותר מ 1 i איברים אחרים ב A. פתרון טריוויאלי מיון על פי אחד מהאלגוריתמים ב ((n O, n log והחזרת הערך באינדקס i. קיים פתרון מהיר יותר, בזמן (n Θ: ˆ ביצוע P artition על המערך. אם,q = i נחזיר את.A[q] אם i, < q נבצע רקורסיבית P artition על המערך השמאלי. אם i, > q נבצע רקורסיבית P artition על המערך הימני. האינטואיציה לאלגוריתם הוא שבמקרה של,QuickSort אנו זקוקים למיין את שני צידי הציר q. אבל כדי למצוא את האיבר ה i, אנו זקוקים רק לתת מערך יחיד בכל קריאה רקורסיבית. זמן ריצה אם P artition יחלק תמיד את המערך לתת מערך בגודל 1 n, ותת מערך ריק. זמן הריצה הכולל יהיה על פי נוסחת הנסיגה: (n,t (n = T (n 1 + Θ ולכן זמן הריצה יהיה איטי: 2.Θ ( n.t (n = T ( n 2 אבל אם P artition יחלק את המערך לשני תתי מערכים שווים בגודלם, תתקבל נוסחת הנסיגה (n + Θ וחישוב על פי משפט האב יתן זמן ריצה כולל (n Θ. על מנת להתמיד בחילוק המערך באופן שווה, נבחר ציר q בצורה רנדומלית. 20

21 חלק II מבני נתונים 8 מבני נתונים מופשטים 8.1 שאלה אלגוריתמית ניהול של תהליכים על ידי מערכת הפעלה לכל תהליך קדימות משלו. רוצים להריץ בכל שלב את התהליך עם הקדימות המירבית ולתחזק את המערכת. פעולות שארצה לבצע ˆ לעדכן קדימויות. (להגדיר מה חשוב יותר לבצע קודם ˆ להכניס תהליך חדש. ˆ להוציא תהליך. ˆ למצוא את התהליך עם הקדימות המקסימלית. ˆ בניית המערכת תור קדימויות Priority Queue אנחנו מכירים רשימות עם זמן ריצה מסוים עבור הפעולות שהגדרנו: ˆ מחסנית,stack- LIFO יכול לנהל מערכת קדימויות רק לפי זמני הגעה. ˆ תור, queue - FIFO יכול לנהל מערכת קדימויות רק לפי זמני הגעה. ˆ מערך (ממויין ˆ רשימה (ממויין 21

22 נרצה להכיר סוג חדש של מבנה נתונים אשר מבצע את הפעולות הנ"ל בזמן קצר יותר. תור קדימויות הוא מבנה נתונים מופשט, בעל הפעולות הבאות: ˆ הכנסת ערך (A.O (log (n.insert O (1.Max (A ˆ ˆ הוצאת ערך מקסימלי (A.O (log (n.extractmax ˆ עדכון ערך. A.O (log (n.increasekey (x, k, תור קדימויות ניתן למימוש על ידי ערימה. הטבלה הבאה אינה פורמאלית (יכול להיות אלגוריתם עבור מערכים ורשימות ממוינות, העושה את הפעולות בזמן קצר יותר: פעולות מערך ממויין רשימה ממויינת ערימה (heap לעדכן קדימות (n log (n Θ (n Θ להכניס תהליך חדש (1 Θ log (n Θ (1 להוציא תהליך (n log (n Θ (n Θ למצוא את התהליך, עם קדימות מקסימלית (n log (n Θ (1 Θ בניית מערכת (n log (n Θ (n log (n Θ (n log 8.2 ערימה (heap ערימה היא עץ בינארי ממוין חלקית. הגדרה 8.1 עץ בינארי שלם זה עץ בינארי בו לכל קודקוד פנימי (זאת אומרת אינו עלה יש 2 בנים. כל העלים בעץ נמצאים באותו עומק, זאת אומרת אותו מרחק מהשורש. דוגמא: הגדרה 8.2 עץ בינארי כמעט שלם זהו עץ בינארי שכל הרמות שלו מלאות, כמו בעץ בינארי שלם, פרט, אולי, לרמה האחרונה שיכולה להיות חסרה כמה קודקודים מימין. 22

23 דוגמא: הגדרה 8.3 ערימה זהו עץ בינארי כמעט שלם, עם ערכים בקודקודים עם התכונה הבאה: הערך בקודקוד פנימי גדול מערכי בניו. (ערימת מינימום זה הפוך הקודקוד קטן מערכי בניו. נממש את הערימה בגודל n, בעזרת מערך [n A,1],... באופן הבא: השורש נכנס ל [1]A, הבנים של קודקוד שנכנס לתא ה i (הבנים של (A[i] הם: הבן הימני [1 +,A[2i הבן השמאלי [ A[2i.ואז המערך הוא בעל תכונת הערימה אם לכל i n 1 מתקיים: A[2i].A[i] > A[2i + 1],A[i] > [16, 14, 10, 8, 7, 9, 3, 1, 2, 4] A index level 23

24 8.3 פעולות של תור קדימיות (אלגוריתם של ערימה עידכון ערך הקטנת ערך הפעולה מעדכנת את הערך של האיבר במקום ה i, בערך חדש x הקטן מהערך הנוכחי של [i] A. DECREASE_VALUE(A, i, x A[ i ]=x MAX_HEAPIFY(A, i השגרה (i MAX HEAPIFY(A, מקבלת כקלט מערך A שהוא בעל תכונת הערימה בכל מקום פרט, אולי, למקום ה i, ומתקנת אותו לערימת מקסימום תיקנית. MAX_HEAPIFY(A, i 24

25 i f A[ i ] > A[ 2 i ] & A[ i ] > A[ 2 i +1] // l o c a l t r e e i s ok e x i t i f A[ 2 i +1] > A[ 2 i ] then // r i g h t son i s b i g g e r swap (A[ i ], A[ 2 i +1] MAX_HEAPIFY(A, 2 i +1 // r e c u r s i v e c a l l e l s e i f A[ 2 i ]>A[ 2 i +1] // l e f t son i s b i g g e r swap (A[ i ], A[ 2 i ] MAX_HEAPIFY(A, 2 i // r e c u r s i v e c a l l זמן ריצה פעולת התיקון (i MAX HEAPIFY(A, עולה כגובה קודקוד i בעץ הערימה לכל היותר, כאשר גובה הקוקוד הוא המרחק המירבי שלו מהעלים. ולכן זמן הריצה של הפעולה הזו הוא לכל היותר גובה העץ כולו. למה 8.4 הגובה של עץ בינארי כמעט שלם עם n קודקודים מקיים.log 2 n 1 h log 2 n h 1 < n h h הוכחה: 2 h 1 < n 2 h+1 1 נחליף סימן שוויון שמאלי, ונוסיף 1 (כי n מספר שלם, אז אם הוא גדול מ 1 h 2 אזי הוא גדול או שווה ל 2. h 2 h n 2 h+1 h log 2 n h + 1 log 2 n 1 h log 2 n הערה 8.5 במקרה של עדכון ערך שיותר גדול מערכי בניו, ניתן לעשות את אותו תהליך של,MAX HEAPIFY רק מלמטה לכיוון למעלה. עדכון הערך מתבצע על ידי "הצפה" למעלה הערימה כל עוד הערך גדול מאביו מתבצעת החלפה ביניהם. INCREASE_KEY(A, i, x { // assume x i s equal or l a r g e r then c urrent value A[ i ]=x while i >1 and A[ Parent ( i ] < A[ i ] swap (A[ i ], A[ Parent ( i ] i = Parent ( i // update index 25

26 הפעולות Max_Heapify ו Increase_Key מטפלים בבעיות שונות, Max_Heapify מתבצע כאשר ישנו ערך הקטן מערך ילדיו, ולכן קיים צורך לבחור בין שני אפשרויות. בעוד Increase_Key מתבצעת כאשר ישנו ערך הגדול מערך אביו, ולכן קיימת אפשרות אחת להחלפה החזרת ערך מקסימלי אלגוריתם המחזיר את הערך המקסימלי בערימה (הערך המקסימלי נמצא בשורש העץ. EXTRACT_MAX(A return A[ 1 ] A[ 1 ] = A[ heapsize ] heapsize MAX_HEAPIFY(A, 1 / / c o s t : l o g n זמן הריצה הוא כזמן הריצה של,MAX_HEAPIFY(A,i שהוא ((n O. (log נכונות בהינתן נכונות של, Max_Heapify נוכיח את נכונות.Extract_Max נצטרך להוכיח שתי טענות: ˆ הערך המקסימלי הוא זה שמוחזר. ˆ הערימה המעודכנת תקינה. טענה 8.6 השורש הוא הערך המקסימלי הוכחה: נניח בשלילה שהשורש אינו מקסימלי. אזי קיים איבר k, שאינו השורש, שערכו מקסימלי. מכיוון ש k אינו השורש קיים לו אב, עובדה הסותרת את התנאי לערימה תקינה. טענה 8.7 הערימה המעודכת תקינה. הוכחה: לאחר ביצוע החלפה בין האיבר האחרון (A[heapSize] לאיבר הראשון ([1]A והקטנת הערימה ב 1, מתקיים המצב הבא: ˆ שני תתי העצים של השורש השם ערימות תקינות, כי לא התבצע בהם שום שינוי. ˆ ההפרה היחידה המתקיימת היא בשורש. וזאת ההננחה היחידה לפיה ניתן לקרוא ל Max_Heapify. בהינתן נכונות Max_Heapify הערימה המעודכנת תקינה. 26

27 8.3.3 בניית הערימה נתון מערך [n,1]a,... ללא מבנה. רוצים להפוך אותו לערימה. BUILD_HEAP(A, n f o r i = n to 1 do MAX_HEAPIIFY(A, i משפט 8.8 זמן הריצה (n T של BUILD_HEAP הוא (n.o נכונות האלגוריתם (ז"א נראה כי הוא מחזיר ערימה חוקית תנאים לנכונות הערימה כאשר מתבצעת קריאה לשיטת,Max_Heapify מתקיימת ההנחה שהתתי עצים של בניו של האיבר k הם ערימות תקינות, והמקום היחידי בו מתקיימת הפרה של תכונת הערימה היא בין האיבר ה k לאחד מבניו. פעולת Max_Heapify נכונה רק אם הנחה זו מתקיימת. הוכחה: באינדוקציה יורדת על i. נוכיח באינדוקציה כי אחרי פעולת MAX_HEAPIFY(A,i כל העצים עם שורש ב A[n] A[i],,... יהיו ערימות חוקיות. אם נצליח להוכיח נכונות, אחרי הפעולה האחרונה, העץ עם שורש ב [1]A הוא ערימה חוקית, לכן A כולו הוא ערימה חוקית. בסיס: i. = n אחרי n פעולות, העץ עם שורש A[n] הוא ערימה חוקית (בכל מקרה הוא עלה עץ בגודל 1. מעבר: נניח נכונות הטענה האינדוקטיבית עבור i +,1 n... ונוכיח נכונות עבור i. הפעולה MAX_HEAPIFY(A,i מקבלת כקלט עץ בינארי כמעט שלם עם שורש ב[ A[i. שני תתי העצים שלו מושרשים ב [ A[2i, A[2i + [1 לפי הנחת האינדוקציה הן ערימות חוקיות. לפי תכונות הפעולה MAX_HEAPIFY(A,i, היא הופכת את העץ עם השורש ב A[i] להיות ערימה חוקית גם הוא. זמן ריצה זמן ריצה (n T של בניית ערימה הוא בגודל n. T (n = n T (MAX HEAP IF Y (A, i Θ (log (n i + 1 i=1 ( n = Θ log (n i + 1 i=1.(1 + i n מספר האיברים שעדיין לא נעשה עליהם פעולת MAX_HEAPIFY (על פי צעד האינדוקציה. 27

28 n n 2 log 2 (n i + 1 log 2 (n i + 1 i=1 i=1 i=1 = n ( n 2 log 2 Ω (n log (n 2 נוכיח כי הביטוי גדול יותר מקבוע כפול (n n. log n 2 ( n log 2 2 למה 8.9 נוכיח כי זמן הריצה של בניית הערימה היא (n T. (n = O אבחנה: זמן הריצה של פעולת MAX_HEAPIFY שווה ל swaps (number of 4 2 (עבור + כל החלפה מתקיים 4 פעולות השוואה של האב לשני בנים, עוד 2 השוואות בין בן ימין לשמאל וההפך, וההחלפה עצמה. ובנוסף במקרה ששני הבנים T (n = n T (MAX HEAP IF Y (A, i = i=1 = 2n + 4 קטנים מהאיבר ואין צורך להמשיך ברקורסיה, נעשים עוד 2 פעולות n T (2 + 4 #swaps (MAX HEAP IF Y (A, i i=1 n T (#swaps (MAX HEAP IF Y (A, i = 2n + 4 i=1 n #swaps (x k אם סופרים את מספר האיברים העולים, נצטרך לחלק ב 2. כי כל איבר נספר פעמיים(בדרך למטה, ובדרך למעלה. כל איבר שנעשה עליו שינוי בתהליך, קודם יורד, לאחר מכן הוא יכול רק לעלות. הוא אינו יכול לרדת לאחר שהתחיל לעלות. לכן, לא יכול להיות שהאיבר יגיע, בכל רגע נתון, לרמה שהיא מעל הרמה של מיקומו הסופי. מכיוון שכך ניתן לחלק ב 2 את מספר הפעולות 2n n + 4 n #swaps (x k = 2n + 4 k=1 k=1 על האיבר, כדי לקבל את מס' הפעמים, לכל היותר, שהאיבר עולה. n #swaps (x k moves up k=1 n #swaps (x k moves up 2n + 4 k=1 גובה העץ h. הרמה של האיבר x k בערימה הסופית d. k n (h d k h d k כמות הפעמים המקסימלית שהאיבר x k יכול לעלות בעץ. נשנה את האיטרציה, כך שתרוץ על הרמות מהשורש עד הקצה, ותחשב את הפעולות שעושה כל איבר (לפי הרמה שבו הוא נמצא. 2n + 4 k=1 ( h 2n h m m = 2n h m=0 k=1 בכל רמה j קיימים לכל היותר 2 j איברים. n h (h d k 2n j (h j j=0 h m 2 m 2n + 4n m=0 נגדיר,m = h j ולכן.j = h m h m 2 m m=0 28

29 2 m = m t=0 ( m t ( m + 0. h למה m m=0 m הוכחה:.1 נראה כי לכל m טבעי מתקיים.m m.(2 m = (1 + 1 m = m ( m t=0 t (כי.2 m = m ( m טריק: t=0 t עבור 2 :m ( m + 1 ( m m (m 1 = 1 + m ( m 2 m 2 + m + 2 = 2 + 2m + m (m 1 = m + m (m m 2 ולכן h m 2 m m=0 h m=0 ( m m = 2 h 2 m 2 2 m=0.2 הוכחנו כי 2 m m 2 m 2 2 m 2.2 ולכן: m=0 ( 1 2 m = q = 1 2 q < 1 m=0 qm = 1 1 q :( h לכן, קיבלנו שזמן הריצה עבור בניית ערימה הוא ליניארי, (n T. (n = O ובפרט (על פי הוכחת הלמה 4 m 2 0=m m 2n + 4 n #swaps (x k moves up 2n + 4n k=1 h m 2 m 2n + 4n 4 = 18n m=0 8.4 סידור בעזרת ערימה בהינתן מערך המסודר כערימה, ניתן למיין את המערך בסדר עולה באמצעות.HeapSort השלבים באלגוריתם: ˆ בניית ערימה ממערך נתון. ˆ החלפת שורש הערימה (בעל הערך המקסימלי עם האיבר האחרון במערך. ˆ בהינתן כי המקום האחרון במערך מכיל את הערך המקסימלי, הקטנת המערך באחד על ידי החסרת התא האחרון מהמערך. ˆ בהינתן כי המקום היחידי בו יכולה להתקיים הפרש של תכונת הערימה היא בשורש (כי הוא המקום היחידי שהתעדכן בערך חדש ביצוע פעולת Max_Heapify על השורש במערך החדש, ˆ ביצוע חוזר של השלבים לעיל, עד שנשאר מערך בעל ערך יחיד הערך המינימלי. 29

30 HEAPSORT(A, n BUILD_HEAP(A, n //O(n f o r i = n to 2 swap (A[ 1 ], A[ i ] //O( 1 MAX_HEAPIFY(A, 1, i 1 //O( l o g (n זמן ריצה (n.o (n log 9 עצי חיפוש בינאריים Trees BST (Binary Search איבריו של עץ חיפוש בינאריים ממוקמים כך שהם תמיד מקיימים את תכונת החיפוש: תכונת החיפוש יהי x איבר בעץ חיפוש בינארי. אם y הוא איבר בתת עץ השמאלי של x, אזי ערך y קטן מערך x. אם y הוא איבר בתת עץ הימני, אזי ערך y גדול מערך x. למען הפשטות, נניח שכל הערכים שונים. החיסרון של BST הוא שהעץ לא תמיד מאוזן. פתרון: נעבוד רק עם עצים מאוזנים (הגובה: ((n n h, = O (log מספר הקודוקודים. מינימום הגדרה 9.1 מינימום של עץ חיפוש בינארי הוא האיבר השמאלי ביותר בעץ. מקסימום הגדרה 9.2 מקסימום של עץ חיפוש בינארי הוא האיבר הימני ביותר בעץ. 30

31 9.1 אלגוריתם הכנסת איבר נגדיר שני מצביעים: 1. מצביע x עובר על העץ. 2. מצביע y מצביע על האבא של x. INSERT(T, z x = root (T, y = NULL while ( x!= NULL y = x i f key ( z<key ( x x = l e f t ( x e l s e x = r i g h t ( x i f ( y = NULL root (T = z e l s e i f ( key ( z < key ( y l e f t ( y = z e l s e r i g h t ( y = z זמן ריצה של INSERT הוא (n n Θ, גובה העץ. 9.2 יורש הגדרה 9.3 היורש (Successor של איבר x, הוא האיבר בעל הערך בקטן ביותר מבין האיברים בעלי ערך הגדול מערך x. מציאת היורש בעץ. חיפוש בינארי חיוני עבור פעולות רבות, וחיוני בתור פעולה עצמאית. TREE_SUCCESSOR( x i f ( r i g h t ( x!= n u l l return Tree_min ( r i g h t ( x e l s e y = parent ( x while ( y!= n u l l and ( x!= l e f t ( y 31

32 // keep on climbing up, to the l e f t o f current x x = y y = parent ( x return y נכונות טענה 9.4 אם y יורש של x אזי: ˆ אם ל x קיים בן ימני w, אזי y הוא המינימום של תת העץ של w. ˆ אם ל x לא קיים בן ימני. אזי מתקיים אחד מהשניים: x מקסימלי האיבר הימני ביותר בעץ, ולכן לא קיים לו יורש. y הוא הקדמון (ancestor הקרוב ביותר ל x כך שבנו השמאלי של y הוא x או קדמון בעצמו של x (ושבנו השמאלי אינו קדמון של x, כלומר הוא קדמון ל x דרך בנו הימני. למה 9.5 יהי x איבר בעץ חיפוש בינארי, אזי כל איבר z שאינו נמצא בתת עץ של x (x T, ערך z אינו נמצא בטווח בין של.value (z / [min (T (x, max (T (x] כלומר.T (x הוכחה: מכיוון שקיים מסלול יחיד משורש העץ לכל קודקוד, קיימים 4 אפשרויות ליחס בין x ל z, כאשר u הוא קדמון משותף ל x ו z : max (T (x < z ˆ.z < min (T (x ˆ.z < u < min (T (x ˆ.max (T (x < u < z ˆ טענה 9.6 אם ל x קיים בן ימני w, אזי היורש של x הוא המינימום של תת העץ של w (w T. הוכחה: ראשית, נוכיח כי היורש נמצא בתת עץ של x. על פי הגדרה היורש הוא האיבר המינמלי מבין כל האיברים הגדולים מ x. כל האיברים הגדולים מ x נמצאים בתת עץ של בנו הימני (w T. על כן היורש הוא האיבר המינימלי מבין כל האיברים ב ( w,t כלומר (w.min (T נוכיח כי היורש בהכרח אינו נמצא מחוץ לתת עץ של x. על פי הלמה, עבור כל z שאינו ב ( x T ערך z אינו בטווח [((x,[min T ((x, max T כל שכן שהוא אינו בטווח [((w,x]. min T לכן, אין אף איבר בכל העץ חיפוש בינארי שערכו גדול מ x אך קטן מ ((w.min T לכן, ((w min T הוא היורש. 32

33 9.3 מחיקת איבר ˆ אם x הוא עלה, נשנה את המצביע אליו מאביו ל.null ˆ אם ל x קיים בן יחיד y, נשנה את המצביע מאביו של x אל x, למצביע מאביו של x לy. כך "נעקוף" את x ונתעלם ממנו. ˆ אם ל x קיימים שני בנים, נמצא את היורש של x y. נעדכן את ערכו של x בערכו של y, ונמחק רקורסיבית את y. (לכל היותר קיים ליורש y בי (ימני יחיד. TREE_DELETE(T, x i f l e f t ( x= n u l l or r i g h t ( x= n u l l //x has a s i n g l e c h i l d at most c h i l d = l e f t ( x i f c h i l d = n u l l c h i l d =r i g h t ( x i f x = l e f t ( parent ( x //x i s a l e f t son l e f t ( parent ( x = c h i l d e l s e //x i s a r i g h t son r i g h t ( parent ( x = c h i l d d e l e t e x e l s e //x has 2 c h i l d r e n // apply s u c c e s s o r value and d e l e t e s u c c e s s o r y = s u c c e s s o r ( x value ( x = value ( y TREE_DELETE(T, y 9.4 קוטר העץ מרחק הגדרה 9.7 מרחק בעץ היא פעולה לכל קבוצה A, שעבור,x,y z A מתקיים (d הוא המרחק בין שני קודקודים: ˆ הגדרת מיקום: > 0 y d (x, ו = 0 y d (x, אמ"ם.x = y ˆ סימטריות: x.d (x, y = d (y, ˆ אי שיוויון המשולש: z.d (x, z d (x, y + d (y, נגדיר את המרחק בגרף, עבור קבוצת קודקודים V: לכל d,v (u,u: v V הוא המסלול הקצר ביותר בין uל v. 33

34 9.4.1 קוטר העץ מכיוון שעץ הוא סוג של גרף, הגדרת המרחק עבור גרפים מתקיימת גם בעצים. הגדרה 9.8 קוטר העץ הוא המסלול הארוך ביותר (מבין כל המרחקים המסלולים הקצרים בין שני קודקודים ( 1 המתקיים בין שני קודקודים בעץ, v.d (T = max u,v d (u, מציאת קוטר העץ הרעיון למציאת הקוטר הוא לבצע אלגוריתם רקורסיבי שמוצא את הקוטר של התת עץ הימני של השורש, את הקוטר של תת העץ השמאלי של השורש. וסכום המסלול הארוך ביותר מהשורש לסוף העץ הימני, והמסלול הארוך ביותר מהשורש לסוף העץ השמאלי (כלומר, גובה תת העץ השמאלי+גובה תת העץ הימני+ 2. בכל שלב נצטרך את גובה תת העץ וקוטרו. TREE_DIAMETER(X // r e t u r n s ( height, diameter I f x = n u l l return ( 1, 1 ( left_h, left_d = TreeDiameter ( l e f t ( x ( right_h, right_d = TreeDiameter ( r i g h t ( x return (max( left_h, right_h +1,/ * height */ max( right_d, left_d, left_h+right_h +2/ * diameter */ זמן ריצה סיבוכיות כמספר הקודקודים בעץ ( V Θ. 10 עצי (Adelson-Velskii Landis AVL הגדרה 10.1 עץ בינארי הוא בעל תכונת,AVL אם לכל קודקוד פנימי בעץ מתקיים: ((x h (left ((x h (right 1 (תנאי מקומי. טענה 10.2 הגובה hשל עץ AVL עם n קודקודים מקיים (n.h = O (log ( 1+.( n ( 5 3 n קודקודים (התשובה המדויקת יותר היא 2 2 למה 10.3 בעץ AVL בגובה h יש לפחות הוכחה: באינדוקציה על n. בסיס: נראה עבור שני המקרים הראשונים..n = 1 ( = 1 :h = 0 n 2 ( = 3 2 :h = 1 1 בעץ קיים רק מסלול יחיד בין כל שני קודקודים, לכן המסלול הקצר ביותר הוא המסלול היחיד 34

35 צעד: נניח את נכונות הטענה עבור [1 h,...,1]. ונוכיח עבור h. נסמן n h כמספר הקודקודים המינימלי האפשרי של עץ AVL בגובה h..1 נראה כי מתקיים h 1.n h n h > n h 1 :n h > n 2. נראה כי מתקיים 2 h n. h > n 1 h + n אנו יודעים עכשיו איך נראה עץ AVL עם מספר קודקודים מינימלי בגובה h. קיבלנו נוסחה רקורסיבית: n h = n h 1 + n h > n h 1 + n h 2 ( 3 h 1 2 ( 3 h 2 = 2 ( h ( h ( 1 3 = > ( h ( h 2 3 > 2 ( 3 2 h 2 = ( h 3 2 : ( 3 h 2 2 נראה כי האי שיוויון באמת מתקיים. נחלק כל אגף ב ( 3 h ( = ( > 9 4 n הוכחה: הלמה גוררת את הטענה. נניח את נכונות הלמה, ונוכיח את הטענה. :n ( 3 h 2 יהי T עץ AVL עם n קודקודים. ויהי h הגובה של T. לפי הלמה ( h 3 3 n log log 2n n 1 3 log (n h = O (log (n log מציאת קוטר עץ AV L נתון שכל קודקוד בעץ מכיל את גובהו בעץ. AVL_DIAMETER( Node n i f n = n u l l reuturn 0 e l s e return ( r i g h t (n. height + l e f t (n. height

36 טענה 10.4 קוטר עץ AV L בעל גובה h, הוא לכל היותר 2h. הוכחה: באינדוקציה על h. בסיס = 0.h אזי הקוטר הוא. 0 צעד נניח נכונות עבור 1 h, ונוכיח עבור h. אם הקוטר, כלומר המסלול הארוך ביותר בין שני קודקודים בעץ, עובר דרך השורש. ידוע כי קוטר כזה הוא סכום הגבהים של שני תתי העצים , R.height(n L + height(n מתכונת AV L ידוע כי גובהו של תת עץ של השורש יהיה לכל היותר 1 h. אזי לכל היותר הקוטר הוא: 2 (h = 2h = 2h אם הקוטר אינו עובר דרך השורש, אלא באחד תתי העץ של השורש. על סמך נכונות האינדוקציה ניתן להסיק כי מתקיימת הטענה על תת עץ בגובה 1.h ואמנם מתקיים, (h 1 < 2h.2 נכונות האלגוריתם נוכיח כי קוטר עץ AV L בהכרח עובר דרך השורש. השמאלי/ימני. כלומר, סכום גבהי תתי העצים + 2, גדול יותר מקוטר תת העץ הוכחה: על פי הטענה שהוכחה לעיל, ידוע כי קוטר תת העץ הימני או השמאלי הוא לכל היותר (1 h 2. כמו כן, על פי תכונת,AV L סכום תתי העצים הוא לפחות 3 2h.(h 1 + (h 2 = אזי מתקיים כי סכום תתי העצים בתוספת 1 : 2 2h 2h, = גדול מערכו המקסימלי האפשרי של קוטר תת עץ:.2 (h 1 = 2h 2 2h 1 > 2h הכנסת איבר Insertion לאחר הכנסת איבר לעץ,AV L יש צורך "לטפס" במעלה העץ כדי לבדוק אם פעולת ההכנסה גרמה להפרה של תכונת העץ.AV L אם קיימת הפרה, יש צורך בפעולת תיקון שתחזיר את תכונת ה L AV (הפרשי הגבהים בין שני תתי עצים אינו גדול מ 1, ויחד עם זאת תשמור על תכונת ה BST (ערך הבן השמאלי קטן מערך האב, שקטן מערך הבן הימני. עבור שורש העץ קיימים 4 "נכדים", עבור כל הכנסה לתת עץ של כל נכד קיימת פעולה מתאימה על מנת לתקן את העץ. פעולת התיקון היא "סיבוב" העץ, כך שיתקיימו התכונות הרצויות (מפורט בתרגול מחיקת איבר Deletion בעקבות מחיקת איבר מהעץ, גובהו של העץ השתנה. לכן, יש צורך "לטפס" במעלה העץ כדי לבדוק אם קיימת הפרה של תכונת ה L.AV תנאי העצירה עבור הבדיקה הוא כאשר האלגוריתם מגיע לקודקוד שגובהו לא השתנה, או אם הגיע לשורש העץ. 36

37 זמן ריצה הריצה הוא (n.θ (log כל סיבוב של תת עץ עולה בזמן ריצה קבוע, מכיוון שלכל היותר קיימים (n log קודקודים שצריכים תיקון, זמן 11 גרפים גרף הוא מבנה נתונים מופשט, נסמן את V כמספר הקודקודים, ו E כמספר הצלעות. (E G. =,V ניתן לייצג את הגרף באמצעות מבנה נתונים אחר: מטריצת שכנויות מטריצה ריבועית (בעלת מספר שווה של שורות ועמודות, אשר מספר השורות/עמודות הוא כמספר הקודקודים בגרף. עבור כל מיקום בגרף a, i,j ישנו ערך המייצג את משקל הצלע המחברת בין הקודקודים i ו j. אם לא קיימת צלע כזו, הערך הוא 0. מטריצת שכנויות בינארית מטריצה שמורכבת מערכים של 1 או 0. אם קיים 1 בתא ה a, i,j אזי קיים צלע המחברת בין הקודקודים i ו j. אם קיים, 0 אזי אין צלע המחברת בין הקודקודים. למטריצה זו, יש תכונות מעניינות, כמו למשל: הכפלת המטריצה בעצמה n פעמים, תיתן מטריצה אשר ערך כל תא מייצע את מספר הדרכים שניתן להגיע מ i ל j ב n צעדים. רשימת שכנויות רשימה משורשרת של רשימות משורשרות רשימה באורך מספר הקודקודים בגרף ( V, אשר האיבר ה i ברשימה הוא ראש של רשימה משורשרת באורך מספר שכניו של האיבר ה i. כאשר בכל תא קיים מספר השכן (זהותו ומשקל הצלע המחברת אותו אל האיבר ה i. הגדרה 11.1 גרף לא מכוון: גרף שצלעותיו ללא כיוון (דו כיווניים. הגדרה 11.2 גרף מכוון: גרף שצלעותיו בעלי כיוון מסוים (חד כיווניים אלגוריתמים על גרפים שאלה פשוטה: בהינתן קודקוד v, V מי הם ה"חברים" של v (ז"א, השכנים של v בגרף? מימוש של גרף (ייצוג של גרף נממש באמצעות רשימת שכניות. 37

38 כמות הזיכרון הנדרשת O ( V + E זמן ריצה זמן הריצה לאלגוריתם העונה על השאילתה לגבי השכנים של קודקוד v V הוא (v O. # of neighbours of שאלה יותר קשה: בהינתן s, G צריך, לכל קודקוד v G לחשב את המרחק בגרף מ v ל s : δ.,v (s 11.2 אלגוריתם חיפוש רוחב בגרף Search BFS(Breadth First קלט: גרף G המיוצג על ידי רשימת שכינויות וקודקוד התחלה S. האלגוריתם בונה ומשתמש בתור Q. לכל קודקוד v יותאם שדה (v, dist שבסופו של דבר מכיל את המרחק מ s ל v. BFS (G, S f o r A l l v in V, d i s t ( v= i n f i n i t y d i s t ( s =0 ENQUEUE(Q, s // i n s e r t s to Queue (Q While Q i s not empty u = DEQUEUE(Q // get u from Queue f o r a l l v : ( u, v in E // a l l neighbours o f u i f d i s t ( v = i n f i n i t y ENQUEUE(Q, v // i n s e r t v to Queue d i s t ( v = d i s t (u+1 מרחק: 7 1, 2, 3, 4, 5, 6, כל השאר L יצאו מהתור B התור Q,,..., 1,.., 7 Ø Ø 0, 1,,...,, 1, 1 2,..., 7 Ø 1 0, 1,,...,, 1, 1 3, 4, 5 1 2, 7, 6 0, 1, 2, 2,, 1, 1 5 1, 2 7, 6, 3, 4 0, 1, 2, 2,, 1, 1 5 1, 2, 7 6, 3, 4 0, 1, 2, 2, 3, 1, 1 Ø 1, 2, 7, 6 3, 4, 5 0, 1, 2, 2, 3, 1, 1 Ø.. 0, 1, 2, 2, 3, 1, 1 Ø 1, 2, 7, 6, 3, 4, 5 Ø זמן ריצה משפט 11.3 זמן הריצה של BFS הוא E.O ( V + הוכחה: 38

39 ˆ זמן העבודה עם התור Q הוא ( V O (על פי זמן ריצה של הכנסת והוצאת ערך מהתור. ˆ זמן המעבר, פעם אחת בלבד על רשימות השכנים של כל הקודקודים בגרף (עוברים על רשימת השכנים של קודקוד u, V ברגע שהוא יוצא מהתור הוא כגודל הכולל של כל רשימות השכנים וזה ( E O נכונות משפט 11.4 בסוף הריצה, לכל קודקוד מתקיים (s,dist (v = δ,v כאשר (s δ,v מסמן את המרחק האמיתי של v מ s בתוך.G הוכחה: הוכחת נכונות היא באינדוקציה על k, שהוא גודל קבוצת הקודקודים (B שכבר יצאו מהתור. נסמן את גודל B כ k. נוכיח טענה באינדוקציה על V k :0 טענה 11.5 לכל k. =,0,.. v k, אחרי שהוצאו k איברים מהתור, מתקיימים שלושה התנאים הבאים:.1 נסמן Q k המצב הנוכחי של התור, } t.q k = {v 1,..., v אזי מתקיים: t dist (v 1 dist (v 2...dist (v.dist (v לכל הקודקודים v בתור,Q k ובקבוצת הקודקודים B k שכבר יצאו מהתור, מתקיים s.dist (v = δ (v, 3. נסמן L k קבוצת האיברים שלא נכנסו לתור. לכל קודקוד u L k שעוד לא נכנס לתור = (u.dist מתקיים.δ (u, s dist (v נשים לב, כי מספיק להוכיח את הטענות 1,2,3 כדי להוכיח את המשפט. אמנם, בסוף ריצת האלגוריתם k, = V ולכן כל.dist (v = δ (v, s ולפי טענה, 2.v B k מקיים v V בסיס האינדוקציה = 0,k.L 0 = V \ {s},b 0 = Ø,Q 0 = {s} = 0.1 (s,dist התנאי מתקיים באופן ריק..2 s.dist (s = 0 = δ (s, מתקיים..3 לכל,v L 0 מתקיים = (v,dist ו + 1 (s.δ (v, s 1 = dist מעבר האינדוקציה נניח נכונות ל k ונוכיח ל + 1 k..l k = {u 1,..., u m },B k = {w 1,..., w k },Q k = {v 1,..., v t }. L k+1 = {u r+1,..., u m },B k+1 = {w 1,..., w k, v 1 },Q k+1 = {v 2,..., v t, u 1,..., u r } נבדוק את נכונות התנאים 2 1, ו 3..1 נסמן 1,d = dist (v כאשר v 1 הוא האיבר הראשון בתור בשלב.k + 1 d,dist (v 1 dist (v 2...dist (v t על פי תנאי 1 בהנחת האינדוקציה. מצד שני, הקודקודים החדשים הם שכנים של v, 1 ולכן שדה המרחק שלהם עודכן ל d. + 1 dist v ולכן מתקיים.d dist (v 2... dist (v t d + 1 = dist (u 1 =... = dist (u r d

40 B k זה Qk נשים לב כי עבור הקודקודים ב,dist (v = δ (v, s מתקיים B k+1 2. צ"ל כי לכל הקודקודים ב Qk מתקיים לפי הנחת האינדוקציה (תנאי 2 של ההנחה ולכן נשאר לבדוק את הטענה עבור uשעברו 1,,... u r 1+k Q מתוך.δ (u, s = d נשאר לבדוק + 1.dist (u = d מתקיים + 1 u {u 1,..., u r } לכל קודקוד.L k על פי תנאי 3 הנחת האינדוקציה מתקיים כי.δ (u, s dist (v = d + 1,u L k מצד שני, על פי טענה 2 של הנחת האינדוקציה, מתקיים + 1 d,δ (u, s δ (v, s + 1 = ולכן + 1 d.δ (u, s =.3 צ"ל כי לכל k+1 u L מתקיים = (u dist וזה ברור. וגם כי δ (u, s dist (v ישנם שתי אפשרויות : (א,dist (v 2 = d לפי הנחת האינדוקציה (3 1 + d.δ (u, s dist (v = כנדרש. (ב + 1 d,dist (v 2 = הבעיה היחידה שיכולה להיווצר היא אם + 1 d,δ (u, s = וזאת צריך לסתור, נוכיח שזה לא יכול להתקיים: למה d.δ (u, s הוכחה: נניח בשלילה כי + 1 d δ,,u (s = יהי x הקודקוד האחרון לפני u בדרך הקצרה מ s ל u. ולכן מתקיים?x נשאלת השאלה, איפה נמצא הקודקוד.δ (x, s = d נוכיח ש x אינו נמצא באף אחת מהקבוצות B k Q, k או L. k ולכן uאינו נמצא ב 1+k B 1+k Q, או 1+k L. נשים לב, כי לפי הנחת הלמה, שדות המרחק ב Q k נראה כך: d = dist (v 1 dist (v 2 = d + 1 =... = dist (v t נראה כי.x / Q k נניח,x Q k אזי לפי הנחת האינדוקציה,(2 1.dist (x = δ (x, s = d x = v ולכן, זה היה גורר k+1,u Q סתירה (כי ע"פ ההנחה k+1.(u L נראה כי x, / B k אחרת בשלב בו x נשלף מתוך התור, u היה נכנס לתור. בסתירה לך ש 1+k u. L נראה כי.x / L k ע"פ ההנחה באינדוקציה (3 לכל קודקוד,δ (y, s dist (v = d + 1,y L k בסתירה לכך ש s.d = δ (x, 11.3 אלגוריתם חיפוש עומק בגרף Search DFS (Depth First אלגוריתם ה"מגלה" את הגרף לעומק, לצורך כך משתמש במתודת עזר.Explore המתודות POSTVISIT ו PREVISIT הם מתודות עזר, הקובעות את זמן הכניסה/יציאה מכל קודקוד. EXPLORE(G, v v i s i t ( v=1 PREVISIT( v f o r each w in (w, v from E i f v i s i t e d (w=0 40

41 POPSTVISIT( v EXPLORE(G, w אלגוריתם DFS DFS(G f o r each v in V v i s i t e d ( v=0 f o r each v in V i f ( v i s i t e d ( v == 0 EXPLORE(G, v זמן ריצה האלגוריתם עובר על כל הקודקודים בגרף, ועל כל צלע לכל היותר פעמיים. על כן זמן הריצה של DF S הוא.O ( V + E סוגי צלעות Edge Types עץ לעומק, הוא מסלול הנוצר בגרף לאחר הרצת.DF S ˆ צלעות עץ edges (Tree הצלע (v, u הוא צלע עץ אם בהרצת v,df S התגלה לראשונה דרך צלע זו. ˆ צלעות לפנים edges (Forward הצלע (v, u היא צלע לפנים, אם היא מחברת את u לצאצא שלה v בעץ לעומק, והיא אינה צלע עץ. ˆ צלעות לאחור edges (Backward (v,u היא צלע לאחור, אם היא מחברת את u לקודקוד קדמון שלה בעץ לעומק. כולל לולאות עצמיות צלע המתחברת לקודוקד ממנו יצאה. ˆ צלעות צולבות edges (Cross כל שאר הצלעות בגרף, הם יכולים לחבר בין צלעות באותו עץ לעומק, כל עוד קודקוד אחד אינו צאצא של השני. או לחבר בין קודקודים הנמצאים בעצי עומק שונים. גרפים ללא מעגל Graphs DAG (Directed Acylic הגדרה 11.7 מעגל בגרף הוא תת קבוצה של קודקודים } k,{v 1,..., v כך שלכל i = 1,..., k מתקיים (v i, v i+1 E וגם מתקיים.(v 1 v 2... v k v 1 סימון המעגל יתבצע כך:.(v k, v 1 E בהינתן גרף, נרצה לדעת אם מתקיים בו מעגל. טענה 11.8 בגרף נתון לא קיים מעגל (כלומר הוא,(DAG אמ"ם הוא לא מכיל "צלעות לאחור". 41

42 הוכחה: נניח ש,u (v E הוא צלע לאחור. נוכיח שבהכרח קיים מעגל ב G. לכן, קיים מסלול v,... u שהוא חלק מהעץ (כלומר קיימים n צלעות עץ המחברות ביניהם, לכן קיים מעגל... v ב G. u v נניח שקיים מעגל v 1 v 2... v k v 1 ב G. נוכיח שבהכרח קיים צלע לאחור. נזכר, כי על ידי הרצת,DF S יתקבלו כל המסלולים העציים בגרף. יהי v i הקודקוד ההתחלתי ממנו נריץ,DF S לכן כל v j v i הם צאצאים של v i בעץ.DF S בפרט, גם 1 i v צאצא. לכן קיים מסלול מ v 1 אל 1 i v. נסיק אם כן, על פי הגדרת "צלע לאחור", כי i v 1 i, v הוא צלע לאחור. יישום DFS לסיווג הצלעות ניתן להשתמש בתכונות התיארוך של PREVIST :DFS ו,POSTVISIT על מנת לסווג את צלעות הגרף לסוגים השונים. כפי שתואר, סמן PREVISIT מסמן את זמן הכניסה לקודקוד, וסמן POSTVISIT מסמן את זמן היציאה ממנו. תאורית הסוגריים בהינתן שני קודקודים בגרף,u, v V וצלע,u (v E היוצאת מ u ומתחברת ל v. לאחר הרצת DF S קיימים שלושה מצבים אפשריים בקשר ליחס בין זמני הכניסה/יציאה ביניהם. ˆ לפרקי הזמן ] OST [u, P RE, u.p ו ] OST [v.p RE, v.p אין שום זמן משותף, ולכן u ו v שייכים למסלולים נפרדים. ואף אחד מהם אינו צאצא של השני. הצלע (v,u היא צלע צולבת. ˆ פרק הזמן של [u, P RE, u, P OST ] :u מוכל כולו בתוך פרק הזמן של.[v.P RE, v.p OST ] :v לכן u הוא צאצא של v. ובנוסף, הצלע (v,u היא צלע לאחור. ˆ פרק הזמן של [v.p RE, v.p OST ]:v מוכל כולו בתוך פרק הזמן של.[u, P RE, u, P OST ] :u לכן v צאצא של.u הצלע (v,u היא צלע עץ או צלע לפנים. 42

43 איור 2: (a תוצאת הרצת DF S על גרף מכוון. (b פרקי הזמן של כל קודקוד בגרף. ניתן לראות שאם פרק זמן של קודקוד v מוכל בתוך פרק זמן של u, אזי v הוא צאצא של (c u. הגרף מתואר כיער, עם עץ נפרד לכל שורש. מכיוון שגרף מכיל מעגל אמ"ם קיים צלע לאחור. ניתן, לאחר הרצת EXP LORE על הגרף, לעבור על כל הצלעות ולבדוק אם קיימת צלע אשר פרק הזמן של קודקוד השורש (ממנו יוצאת הצלע מוכל בתוך פרק הזמן של קודקוד המטרה (אליו מוכוונת הצלע מיון טופולוגי הגדרה 11.9 מיון טופולוגי עבור גרף מכוון,G הוא מיון כל הקודקודים בגרף:,v 1 v 2... v n כך שאם (v i, v j E אזי.v i v j תכונה זו טרנזיטיבית!. לא עבור כל גרף מכוון קיים מיון טופולוגי. תנאי מספיק לאי קיום מיון טופולוגי הוא כאשר קיים מעגל בגרף. טענה לגרף מכוון המכיל מעגל אינו קיים מיון טופולוגי. 43

44 הוכחה: נניח ש 1 (v 1 v 2... v k v הוא מעגל בגרף.G מכיוון ש,(v k, v 1 E אזי על פי הגדרת המיון הטופולוגי, בכל מיון טופולוגי של הגרף יתקיים ש v. k v 1 אבל, ניתן להסיק מהמעגל הנתון ש,v 1 v 2... v k ומטרנזיטיביות יתקבל כי.v 1 v k סתירה. אם, לאחר בדיקה, ידוע כי הגרף הוא.DAG ניתן למיין את הקודקודים במיון טופולוגי באמצעות זמני הכניסה/יציאה. סידור על פי זמני היציאה בסדר יורד ימיין את הקודקודים כמיון טופולוגי. טענה אם G הוא,DAG אזי סידור הקודקודים על פי זמני היציאה בסדר יורד יתבטא כמיון טופולוגי. הוכחה: יהי צלע.(u, v E ˆ אם מתודת EXP LORE ביקרה קודם ב u : אם קריאת EXP LORE על v מתבצעת מתוך הקריאה הנוכחית (מ u, אזי קריאת EXP LORE על v תסתיים לפני סיום הקריאה על u. אם קריאת EXP LORE על v מתבצעת מתוך קריאת EXP LORE על קודקוד w u (שאף קריאה זו התבצעה, רקורסיבית, מתוך הקריאה על u, אזי גם במקרה הזה, קריאת EXP LORE על v תסתיים לפני הקריאה על u. ˆ אם מתודת EXP LORE ביקרה קודם ב v, מכיוון שהגרף הוא ללא מעגלים, לא תיתכן קריאה רקורסיבית על u מתוך הקריאה על v. ולכן הקריאה על v תסתיים לפני הקריאה על u. בכל מקרה יתקבל כי (U P, OST (v < P OST ולכן על ידי סידור זמני היציאות בסדר יורד, יתקבל ש u. v 11.5 רכיבי קשירות חזקים הגדרה רכיב קשירות חזק בגרף מכוון הוא תת קבוצה של קודקודים C, V כאשר לכל,u v C קיים מסלול ביניהם. כלומר קיים מסלול מ uל v, וגם קיים מסלול מ v ל u, עבור כל,u v C (בגרף לא מכוון מספיק שיהיה קיים מסלול מסוים ביניהם, כי כל מסלול לא מכוון הוא דו כיווני. על מנת למצוא רכיבי קשירות חזקים בגרף לא מכוון ניתן לבצע DF S עם שינוי קל, ספירת הפעמים שמאתחלים את האלגוריתם על קודקוד חדש והצבת הערך המונה בכל קודקוד של קריאה נוכחית (בגרף לא מכוון, כל קריאה מחודשת של DF S משמעה שלא קיים אף צלע המחברת אותו לאף קודקוד שכבר עברנו עליו. DFS_CC(G// f o r non d i r e c t e d graph f o r each v in V v. v i s i t e d = 0 ; cc =0;// connected component counter f o r each v in V i f v. v i s i t e d == 0 cc++; EXPLORE(G, v, cc 44

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

ל הזכויות שמורות לדפנה וסטרייך

ל הזכויות שמורות לדפנה וסטרייך מרובע שכל זוג צלעות נגדיות בו שוות זו לזו נקרא h באיור שלעיל, הצלעות ו- הן צלעות נגדיות ומתקיים, וכן הצלעות ו- הן צלעות נגדיות ומתקיים. תכונות ה כל שתי זוויות נגדיות שוות זו לזו. 1. כל שתי צלעות נגדיות

Διαβάστε περισσότερα

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות 1. מצאו צורה דיסיונקטיבית נורמלית קנונית לפסוקים הבאים: (ג)

Διαβάστε περισσότερα

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות אלגוריתמים חמדניים אלגוריתם חמדן, הוא כזה שבכל צעד עושה את הבחירה הטובה ביותר האפשרית, ולא מתחרט בהמשך גישה זו נראית פשטנית מדי, וכמובן שלא תמיד היא נכונה, אך במקרים רבים היא מוצאת פתרון אופטימאלי בתרגול

Διαβάστε περισσότερα

מבני נתונים עצים שיעור 7

מבני נתונים עצים שיעור 7 בס ד מבני נתונים עצים שיעור 7 שי גולן כ ח בניסן, תשע ו 6 במאי 2016 תקציר בתרגול זה נתחיל לדון בעצים. נגדיר עצים כלליים ועצים בינאריים, ונציג את ההגדרות הבסיסיות בתחום. נתרגל הוכחת תכונות של עצים באמצעות

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים חזרה מבנה נתונים אמצעי לאחסון נתונים במחשב. יש הרבה סוגים שונים, וצריך להשתמש במבנה שהכי מתאים לבעיה שלנו מבחינת שימוש בנתונים הוספה, מחיקה

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה מיון (Sorting) void BubbleSort(int* A, int n){ for (i = ; i < n-; i++) for (j = n-; j >= i; j--) if ( a[j] > a[j+]) swap(&a[j], &a[j+]); מערך בן מספרים. קלט: מערך ובו המספרים מאוחסנים בסדר עולה (או יורד).

Διαβάστε περισσότερα

logn) = nlog. log(2n

logn) = nlog. log(2n תכנוןוניתוחאלגוריתמים סיכוםהתרגולים n log O( g( n)) = Ω( g( n)) = θ ( g( n)) = תרגול.3.04 סיבוכיות { f ( n) c> 0, n0 > 0 n> n0 0 f ( n) c g( n) } { f ( n) c> 0, n0 > 0 n> n0 0 c g( n) f ( n) } { f ( n)

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

מבני נתונים אדמיניסטרציה דר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: מבני נתונים בס"ד, ט' אדר א' תשע"א: שעור 1 אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: בחינת מגן 20%. תרגילים: 14 13, מורידים את האחד הכי גרוע. 10% מהציון. אתר: www.cs.huji.ac.il/~dast

Διαβάστε περισσότερα

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m. פתרון למבחן במבני נתונים, מועד א', קיץ 2005 חלק א' שאלה 1 א. רכיב הקשירות החזק של קודקוד x בגרף מכוון הינו אוסף כל הקודקודים y שמקימים שיש מסלול מ- x ל- y וכן מסלול מy ל- x. טעויות נפוצות שכחו לכתוב שזה

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין, 009 מבני נתונים סיכום למבחן, יולי sashag@cs מאת : סשה גולדשטיין, 7:50,3.7.09 עדכון אחרון : בשעה הגבלת אחריות הסיכום להלן הוא האינטרפרטציה שלי של החומר, שממש לא חייבת להיות נכונה או מייצגת את זו של הסגל.

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ). מבוא לפרק: : עצים.(ree) עצים הם גרפים חסרי מעגלים. כך, כיוון פרק זה הוא מעין הפוך לשני הפרקים הקודמים. עץ יסומן לרב על ידי במשפטים 8.1-8.3 נפתח חלק מתכונותיו, ובהמשך נדון בהיבטים שונים של "עץ פורש" של

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים חידה לחימום בסל מקש יש צמר. כדורי 00 שני שחקנים משחקים בתורות: כל שחקן, בתורו, צריך להוציא כמות כלשהי של כדורי צמר מהסל לפחות כדור אחד, אך לא יותר ממחצית מכמות כדורי הצמר שבסל. מי שלא יכול לעשות מהלך (מתי

Διαβάστε περισσότερα

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ! מיון ערימה (Heapsort) מבני נתונים חלק I מיון מבני נתונים ד"ר ערן לונדון. הגדרת ערימה ערימה (בינארית) הינה מערך אשר ניתן להציגו כמו עץ בינארי מלא או כמעט מלא כאשר כל קודקוד בעץ מתאים לתא במערך. העץ הינו

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n, חידה לחימום נתון פיגום משולש של מוטות המחברים קודקודים ויוצרים קומות של משולשים קטנים, כמודגם באיור הבא, בו מתואר פיגום משולש בן שתי קומות: משימתו של פועל העובד בפיגום היא להתקדם מן הקודקוד השמאלי התחתון

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. 16 במאי 2010 נסמן את מחלקת הצמידות של איבר בחבורה G על ידי } g.[] { y : g G, y g כעת נניח כי [y] [] עבור שני איברים, y G ונוכיח כי [y].[] מאחר והחיתוך

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט. פרק סיבוכיות פרק סיבוכיות המושג יעילות מהו? במדעי המחשב היעילות נמדדת בעזרת מדדי סיבוכיות, החשובים שבהם: של אלגוריתמים יעילותם תוכן הפרק: יעילות מהי (זיכרון וזמן, זמן ריצה T( של אלגוריתם מהו, מהם case,

Διαβάστε περισσότερα

סדרות - תרגילים הכנה לבגרות 5 יח"ל

סדרות - תרגילים הכנה לבגרות 5 יחל סדרות - הכנה לבגרות 5 יח"ל 5 יח"ל סדרות - הכנה לבגרות איברים ראשונים בסדרה) ) S מסמן סכום תרגיל S0 S 5, S6 בסדרה הנדסית נתון: 89 מצא את האיבר הראשון של הסדרה תרגיל גוף ראשון, בשנייה הראשונה לתנועתו עבר

Διαβάστε περισσότερα

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס: תאריך הבחינה:... נובה פנדינה שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:..00 מספר הקורס:. סמסטר: א' מועד: שנה: שלוש שעות משך הבחינה: ללא חומר עזר חומר עזר: ב' הנחיות חשובות: רצוי לפתור את

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 12

מתמטיקה בדידה תרגול מס' 12 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: נוסחאות נסיגה נוסחאות נסיגה באמצעות פונקציות יוצרות נוסחאות נסיגה באמצעות פולינום אופייני נוסחאות נסיגה לעתים מפורש לבעיה קומבינטורית אינו ידוע, אך יחסית קל להגיע

Διαβάστε περισσότερα

תרגול מס' 1 3 בנובמבר 2012

תרגול מס' 1 3 בנובמבר 2012 תרגול מס' 1 3 בנובמבר 2012 1 מערכת המספרים השלמים בשיעור הקרוב אנו נעסוק בקבוצת המספרים השלמים Z עם הפעולות (+) ו ( ), ויחס סדר (>) או ( ). כל התכונות הרגילות והידועות של השלמים מתקיימות: חוק הקיבוץ (אסוציאטיביות),

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום- בעיות מינימוםמקסימום - שאלון 806 סיכום- בעיות מינימוםמקסימום - שאלון 806 בבעיותמינימום מקסימוםישלחפשאתנקודותהמינימוםהמוחלטוהמקסימוםהמוחלט. בשאלות מינימוםמקסימוםחובהלהראותבעזרתטבלה אובעזרתנגזרתשנייהשאכן מדובר עלמינימוםאומקסימום. לצורךקיצורהתהליך,

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה אלגוריתמים בתורת הגרפים פתרון תרגיל מס' 2 לשאלות והערות נא לפנות לאילן גרונאו (shrilan@cs.technion.ac.il) א) ב) ג) גרף דו-צדדי (bipartite) הינו גרף (E )G V, אשר קיימת חלוקה של צמתיו לשתי קבוצות U,W e =

Διαβάστε περισσότερα

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

s קמ קמש מ - A A מ - מ - 5 p vp v= את זמני הליכת הולכי הרגל עד הפגישות שלהם עם רוכב האופניים (שעות). בגרות ע מאי 0 מועד קיץ מבוטל שאלון 5006 מהירות - v קמ"ש t, א. () נסמן ב- p נכניס את הנתונים לטבלה מתאימה: רוכב אופניים עד הפגישה זמן -

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

Διαβάστε περισσότερα

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

Διαβάστε περισσότερα

חשבון אינפיניטסימלי 1

חשבון אינפיניטסימלי 1 חשבון אינפיניטסימלי 1 יובל קפלן סיכום הרצאות פרופ צליל סלע בקורס "חשבון אינפיניטסימלי 1" (80131) באוניברסיטה העברית, 7 2006. תוכן מחברת זו הוקלד ונערך על-ידי יובל קפלן. אין המרצה אחראי לכל טעות שנפלה בו.

Διαβάστε περισσότερα

שאלה 1 V AB פתרון AB 30 R3 20 R

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

מבנה נתונים סיכומי הרצאות

מבנה נתונים סיכומי הרצאות מבנה נתונים סיכומי הרצאות 22 ביוני 2010 הערה לקראת המבחנים מרצה: דורית אהרונוב סוכם ע י: אור שריר פניות לתיקונים והערות: tnidtnid@gmail.com כרגע חסרים מספר דברים בסיכום, כמו פונקציות גיבוב, וכמובן שתמיד

Διαβάστε περισσότερα

מבני נתונים (234218) 1

מבני נתונים (234218) 1 מבני נתונים (234218) 1 חומר עזר לבחינה 13 בספטמבר 2016 שימו לב: מותר לצטט טענות המופיעות בדף זה ללא הוכחה. כל טענה אחרת, שאינה מופיעה באופן מפורש, יש לנמק באופן מלא. נימוקים מהצורה "בדומה לטענה שבחומר

Διαβάστε περισσότερα

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל תכנון אלגוריתמים, אביב, תרגול מס' תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים כאשר, p 5 5 p היא

Διαβάστε περισσότερα

co ארזים 3 במרץ 2016

co ארזים 3 במרץ 2016 אלגברה לינארית 2 א co ארזים 3 במרץ 2016 ניזכר שהגדרנו ווקטורים וערכים עצמיים של מטריצות, והראינו כי זהו מקרה פרטי של ההגדרות עבור טרנספורמציות. לכן כל המשפטים והמסקנות שהוכחנו לגבי טרנספורמציות תקפים גם

Διαβάστε περισσότερα

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A ) הסתברות למתמטיקאים c ארזים 3 במאי 2017 1 תוחלת מותנה הגדרה 1.1 לכל משתנה מקרי X אינטגרבילית ותת סיגמא אלגברה G F קיים משתנה מקרי G) Y := E (X המקיים: E (X1 A ) = E (Y 1 A ).G מדיד לפי Y.1.E Y

Διαβάστε περισσότερα

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות מינימיזציה של DFA L. הוא אוטמומט מינימלי עבור L של שפה רגולרית A ראינו בסוף הסעיף הקודם שהאוטומט הקנוני קיים A DFA בכך הוכחנו שלכל שפה רגולרית קיים אוטומט מינמלי המזהה אותה. זה אומר שלכל נקרא A A לאוטומט

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 5 שנכתב על-ידי מאיר בכור. חקירת משוואה מהמעלה הראשונה עם נעלם אחד = הצורה הנורמלית של המשוואה, אליה יש להגיע, היא: b

Διαβάστε περισσότερα

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י פרק 3 רקורסיה רקורסיה נכתב ע"י רן רובינשטיין עודכן ע"י איתי שרון רקורסיה הינה שיטה לתכנון אלגוריתמים, שבה הפתרון לקלט כלשהו מתקבל על ידי פתרון אותה הבעיה בדיוק על קלט פשוט יותר, והרחבת פתרון זה לאחר מכן

Διαβάστε περισσότερα

אינפי - 1 תרגול בינואר 2012

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

. {e M: x e} מתקיים = 1 x X Y

. {e M: x e} מתקיים = 1 x X Y שימושי זרימה פרק 7.5-13 ב- Kleinberg/Tardos שידוך בגרף דו-צדדי עיבוד תמונות 1 בעיית השידוך באתר שידוכים רשומים m נשים ו- n גברים. תוכנת האתר מאתרת זוגות מתאימים. בהינתן האוסף של ההתאמות האפשריות, יש לשדך

Διαβάστε περισσότερα

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם. 7.8.2017 מבחן מועד ב' תאריך הבחינה: שמות המרצים: מר בועז ארד פרופ' עמוס ביימל מר יהונתן כהן דר' עדן כלמטץ' גב' מיכל שמש אנא קיראו היטב את ההוראות שלהלן: שם הקורס: תכנון אלגוריתמים מספר הקורס: 202-1-2041

Διαβάστε περισσότερα

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד סמסטר: א' מועד: א' תאריך: יום ה' 0100004 שעה: 04:00 משך הבחינה: שלוש שעות חומר עזר: אין בבחינה שני פרקים בפרק הראשון 8 שאלות אמריקאיות ולכל אחת מהן מוצעות

Διαβάστε περισσότερα

תרגיל 7 פונקציות טריגונומטריות הערות

תרגיל 7 פונקציות טריגונומטריות הערות תרגיל 7 פונקציות טריגונומטריות הערות. פתרו את המשוואות הבאות. לא מספיק למצוא פתרון אחד יש למצוא את כולם! sin ( π (א) = x sin (ב) = x cos (ג) = x tan (ד) = x) (ה) = tan x (ו) = 0 x sin (x) + sin (ז) 3 =

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק שני

אלגוריתמים בתורת הגרפים חלק שני גירסה 1.00 5.12.2002 אלגוריתמים בתורת הגרפים חלק שני מסמך זה הינו השני בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

אלגברה א' - פתרונות לשיעורי הבית סמסטר חורף תשס"ט

אלגברה א' - פתרונות לשיעורי הבית סמסטר חורף תשסט 467 אלגברה א', סמסטר חורף תשס"ט, פתרונות לשיעורי הבית, עמוד מתוך 6 467 אלגברה א' - פתרונות לשיעורי הבית סמסטר חורף תשס"ט תוכן עניינים : גליון שדות... גליון מרוכבים 7... גליון מטריצות... גליון 4 דירוג,

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

אלגוריתמים / תרגיל #1

אלגוריתמים / תרגיל #1 1 אריאל סטולרמן אלגוריתמים / תרגיל #1 קבוצה 02 (1) טענה: אם בגרף לא מכוון וקשיר יש 2 צמתים מדרגה אי זוגית ושאר הצמתים מדרגה זוגית, זהו תנאי הכרחי ומספיק לקיום מסלול אויילר בגרף. הערות: הוכחה: התוספת כי

Διαβάστε περισσότερα

מודלים חישוביים תרגולמס 5

מודלים חישוביים תרגולמס 5 מודלים חישוביים תרגולמס 5 30 במרץ 2016 נושאי התרגול: דקדוקים חסרי הקשר. למת הניפוח לשפות חסרות הקשר. פעולות סגור לשפות חסרות הקשר. 1 דקדוקים חסרי הקשר נזכיר כי דקדוק חסר הקשר הוא רביעיה =(V,Σ,R,S) G, כך

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק ראשון

אלגוריתמים בתורת הגרפים חלק ראשון גירסה 1. 11.11.22 אלגוריתמים בתורת הגרפים חלק ראשון מסמך זה הינו הראשון בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה.

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. מרצה: למברג דן תוכן העניינים 3 מספרים ממשיים 1 3.................................. סימונים 1. 1 3..................................

Διαβάστε περισσότερα

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

2 יחל ) השלמה ל - 5 יחל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת. 1 6 מאי, 2004 מועד הבחינה: 2 יח"ל ) השלמה ל - 5 יח"ל) פרק ראשון (50 נקודות) :1 Ï (מקור: שירלי רוזנברג כהן) נגדיר טיפוס נתונים חדש בשם תלת-מחסנית, כמבנה המכיל 3 מחסניות S3. S2, S1, נגדיר את הפעולות הבאות

Διαβάστε περισσότερα

מצולעים מצולעהוא צורה דו ממדית,עשויה קו"שבור"סגור. לדוגמה: משולש, מרובע, מחומש, משושה וכו'. לדוגמה:בסרטוט שלפappleיכם EC אלכסוןבמצולע.

מצולעים מצולעהוא צורה דו ממדית,עשויה קושבורסגור. לדוגמה: משולש, מרובע, מחומש, משושה וכו'. לדוגמה:בסרטוט שלפappleיכם EC אלכסוןבמצולע. גיאומטריה מצולעים מצולעים מצולעהוא צורה דו ממדית,עשויה קו"שבור"סגור. לדוגמה: משולש, מרובע, מחומש, משושה וכו'. אלכסון במצולע הוא הקו המחבר בין שappleי קדקודים שאיappleם סמוכים זה לזה. לדוגמה:בסרטוט שלפappleיכם

Διαβάστε περισσότερα

אלגוריתמים קומבינטוריים סיכומים של תרגילי כיתה מסמסטרים קודמים בנושא מיון ובעיית הבחירה

אלגוריתמים קומבינטוריים סיכומים של תרגילי כיתה מסמסטרים קודמים בנושא מיון ובעיית הבחירה אלגוריתמים קומבינטוריים סיכומים של תרגילי כיתה מסמסטרים קודמים בנושא מיון ובעיית הבחירה 1. סיכום אלגוריתמי המיון שנלמד: הנחות והערות זכרון נוסף זמן (טוב) זמן (ממוצע) זמן (גרוע) האלגוריתם מיון במקום O(1)

Διαβάστε περισσότερα

השאלות ידי מצביעים לילדים.

השאלות ידי מצביעים לילדים. מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 4 השאלות 1. כתבו פונקציה לא רקורסיבית שמדפיסה ב- Postorder את כל הנתונים המאוכסנים בעץ בינארי T. הפונקציה אינה צריכה להיות תלויה במימוש העץ T. הניחו שנתון

Διαβάστε περισσότερα

(ספר לימוד שאלון )

(ספר לימוד שאלון ) - 40700 - פתרון מבחן מס' 7 (ספר לימוד שאלון 035804) 09-05-2017 _ ' i d _ i ' d 20 _ i _ i /: ' רדיוס המעגל הגדול: רדיוס המעגל הקטן:, לכן שטח העיגול הגדול: / d, לכן שטח העיגול הקטן: ' d 20 4 D 80 Dd 4 /:

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

Διαβάστε περισσότερα

3-9 - a < x < a, a < x < a

3-9 - a < x < a, a < x < a 1 עמוד 59, שאלהמס', 4 סעיףג' תיקוני הקלדה שאלון 806 צריך להיות : ג. מצאאתמקומושלאיברבסדרהזו, שקטןב- 5 מסכוםכלהאיבריםשלפניו. עמוד 147, שאלהמס' 45 ישלמחוקאתהשאלה (מופיעהפעמיים) עמוד 184, שאלהמס', 9 סעיףב',תשובה.

Διαβάστε περισσότερα

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ, עץץץץ AVL הגדרה: עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1,, או 1-. h(t left(x) ) - h(t right(x) ) 1 במילים אחרות: לכל צומת x בעץ, בעץ AVL שומרים עבור כל צומת

Διαβάστε περισσότερα

אלגברה לינארית (1) - פתרון תרגיל 11

אלגברה לינארית (1) - פתרון תרגיל 11 אלגברה לינארית ( - פתרון תרגיל דרגו את המטריצות הבאות לפי אלגוריתם הדירוג של גאוס (א R R4 R R4 R=R+R R 3=R 3+R R=R+R R 3=R 3+R 9 4 3 7 (ב 9 4 3 7 7 4 3 9 4 3 4 R 3 R R3=R3 R R 4=R 4 R 7 4 3 9 7 4 3 8 6

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #8-9

מבני נתונים ואלגוריתמים תרגול #8-9 מבני נתונים ואלגוריתמים תרגול #89 מציאת מסלולים קצרים הבעיה: נתון גרף ממשוקל רוצים למצוא את המסלול הקצר בין זוג קודקודים עיקרון הרלקסציה של קשת: בדיקה האם ניתן לשפר מסלול מ s ל v ע"י מעבר דרך קודקוד u:?

Διαβάστε περισσότερα